Консультация № 109809
17.11.2007, 09:42
0.00 руб.
0 2 2
Доброе утро!

type число=1..31; месяц=1..12; год=1..2000; дата=record ч:число; м:месяц; г:год end; Cчитая, что все даты даются по григорианскому календарю (новому стилю), описать логическую функцию верная дата(d), проверяющую правильность даты d (т.е. чтобы не было 31 июня и т.п.).

Обсуждение

Неизвестный
17.11.2007, 10:08
общий
это ответ
Здравствуйте, Ezhik!
<b>program</b> CheckDate;
<b>type</b>
TDay = 1..31;
TMonth = 1..12;
TYear = 1..2000;
<b>type</b>
TMyDate = <b>record</b>
Day: TDay;
Month: TMonth;
Year: TYear;
<b>end</b>;
<b>function</b> Check(InDate: TMyDate): <b>Boolean</b>;
<b>begin</b>
<b>if</b> InDate.month <b>in</b> (1,3,5,7,8,10,12) <b>then</b>
Chek := True;
<b>if</b> InDate.month <b>in</b> (4,6,9,11) <b>then</b>
<b>if</b> InDate.day < 31 <b>then</b>
Chek := True
<b>else</b>
Chek := False;
<b>if</b> InDate.month = 2 <b>then</b>
<b>if</b> InDate.year div 4 = 0 and (InDate.year div 100 <> 0 or InDate.year div 400 = 0) <b>then</b>
<b>if</b> InDate.day <30 <b>then</b>Check := true <b>else</b>
<b>if</b> InDate.day <29 <b>then</b>Check := true <b>else</b>
Check := false;
end;
begin
//Ваша программа
end.
Неизвестный
17.11.2007, 13:10
общий
это ответ
Здравствуйте, Ezhik!
Григорианский календарь начал действовать в Европе с 15 октября 1582, а в России с 14 февраля 1918 г. т.ч. с 1 по 1582 г, по крайней мере не было дат Григорианского календаря... Какие проверки конкретно необходимы ? На високосность и количество дней в разных месяцах ? Я с детства занимаюсь этой задачей - собаку съел и не однумогу про Юлианский и Григорианский календарь много рассказать !У меня есть программы, написанные на Pascal, MIDLetPascal (для мобильников) и различные функции в JavaScript и др.языках.
Форма ответа