Супермен пошел учиться на курсы программистов. На зачете ему попалась задача: "Дата некоторого дня определяется тремя натуральными числами - G (Год), M (Месяц), D (День). По заданным данным определите дату следующего дня." Решите ее. (Используя PASCALabc)
begi writeln('Введите год, месяц и день:') readln(G, M, D);
if ((G mod 4 = 0) and (G mod 100 <> 0)) or (G mod 400 = 0) then // Проверка на високосный го begi case M o 1, 3, 5, 7, 8, 10, 12: // Месяцы с 31 дне begi if D = 31 then // Если последний день месяц begi D := 1 if M = 12 then // Если последний месяц год begi M := 1 G := G + 1 en els M := M + 1 en els D := D + 1 end 4, 6, 9, 11: // Месяцы с 30 дням begi if D = 30 then // Если последний день месяц begi D := 1 M := M + 1 en els D := D + 1 end 2: // Феврал begi if D = 29 then // Если последний день февраля в високосный го begi D := 1 M := M + 1 en els D := D + 1 end end en else // Невисокосный го begi case M o 1, 3, 5, 7, 8, 10, 12: // Месяцы с 31 дне begi if D = 31 then // Если последний день месяц begi D := 1 if M = 12 then // Если последний месяц год begi M := 1 G := G + 1 en els M := M + 1 en els D := D + 1 end 4, 6, 9, 11: // Месяцы с 30 дням begi if D = 30 then // Если последний день месяц begi D := 1 M := M + 1 en els D := D + 1 end 2: // Феврал begi if D = 28 then // Если последний день феврал begi D := 1 M := M + 1 en els D := D + 1 end end end;
program NextDay;
va
G, M, D: integer;
begi
writeln('Введите год, месяц и день:')
readln(G, M, D);
if ((G mod 4 = 0) and (G mod 100 <> 0)) or (G mod 400 = 0) then // Проверка на високосный го
begi
case M o
1, 3, 5, 7, 8, 10, 12: // Месяцы с 31 дне
begi
if D = 31 then // Если последний день месяц
begi
D := 1
if M = 12 then // Если последний месяц год
begi
M := 1
G := G + 1
en
els
M := M + 1
en
els
D := D + 1
end
4, 6, 9, 11: // Месяцы с 30 дням
begi
if D = 30 then // Если последний день месяц
begi
D := 1
M := M + 1
en
els
D := D + 1
end
2: // Феврал
begi
if D = 29 then // Если последний день февраля в високосный го
begi
D := 1
M := M + 1
en
els
D := D + 1
end
end
en
else // Невисокосный го
begi
case M o
1, 3, 5, 7, 8, 10, 12: // Месяцы с 31 дне
begi
if D = 31 then // Если последний день месяц
begi
D := 1
if M = 12 then // Если последний месяц год
begi
M := 1
G := G + 1
en
els
M := M + 1
en
els
D := D + 1
end
4, 6, 9, 11: // Месяцы с 30 дням
begi
if D = 30 then // Если последний день месяц
begi
D := 1
M := M + 1
en
els
D := D + 1
end
2: // Феврал
begi
if D = 28 then // Если последний день феврал
begi
D := 1
M := M + 1
en
els
D := D + 1
end
end
end;
writeln('Следующий день: ', G, '.', M, '.', D);
end.