Программа, определяющая количество дней в месяце

Задача

Написать программу, которая определяет количество дней в заданном месяце.

Решение

 

Переменная d имеет тип данных запись и содержит два поля: year – для хранения года иmonth – для месяца.

Пользователь вводит год и месяц.

Оператор выбора case по номеру месяца определяет количество дней в нем. Ситуация осложняется тем, что в феврале может быть как 28 дней, так и 29 (в високосный год).

Год является високосным, если делится без остатка на 4 и при этом не является последним годом столетия, за исключением того столетия, которое без остатка делится на 400.

Программа на языке Паскаль: 

 

type date = record
        year:1900..2100;
        month:1..12
     end;
 
var d: date;
 
begin
    write('Год: ');
    readln(d.year);
    write('Месяц: ');
    readln(d.month);
 
    case d.month of
        4,6,9,11:
            writeln('В этом месяце 30 дней');
        1,3,5,7,8,10,12:
            writeln('В этом месяце 31 день');
        2:
            if (d.year mod 400 = 0) or
            (d.year mod 100 <> 0) and (d.year mod 4 = 0) then
                writeln('В этом месяце 29 дней')
            else
                writeln('В этом месяце 28 дней');
    end;
 
readln;
end.

 

Тема

Записи

Уровень

Комбинированные задачи