Архив блога

суббота, 22 января 2011 г.

Задача 100.

Напишите программу, которая вычисляет дату следующего дня. Ниже приведен рекомендуемый вид экрана во время работы программы.


/*
    Программа вычисляет дату следующего дня.
*/
#include "locale.h"
#include <curses.h>
#include <stdio.h>

int main()
{
    int day, month, year, next;
    char *loc;
     loc = setlocale(LC_CTYPE,"ru_RU.UTF-8");
   
    initscr();
   
    printw("Введите цифрами сегодняшнюю дату (число, месяц, год): ");
    scanw("%i %i %i", &day, &month, &year);
   
    next = 0;
   
   
   if(month == 2) // Разбираемся с февралем.
    {
        if(((year % 4) == 0) && (day == 29))
        {
           next = 1;
           // если год високосный то в феврале 29 дней.
        }   
       
        if(((year % 4) != 0) && (day == 28))
           next = 1;
         // если год не високосный, то в феврале 28 дней.
    }
    else
    {
        if((month == 4) || (month == 6) || (month == 9) || (month == 11) && (day == 31))
         next = 1;
        // в апреле, июне, сентябре и ноябре 30 дней.
        else if(day == 31)
                next = 1;
        // в остальных месяцах 31 день.
    }

   
   if(next != 0)
   {
        printw("Последний день месяца.\n");
        day = 1;
        if(month == 12)
        {
           month = 1;
           year = year + 1;
           printw("Последний день года.\n");
        }
        else
           month = month + 1;
    }
   else
   {
        day = day + 1;
   }
   
    printw("Завтра будет %i.%i.%i", day, month, year);
   
    getch();
    endwin();
    return 0;
}

Комментариев нет:

Отправить комментарий