Определение биоритмов
{----------------}
Procedure WriteDates (dmin, dmax, days: Integer);
{Определение и вывод дат критических дней. Вывод дополнительной информации
'о количестве прожитых дней, часов, минут и секунд }
{-------------}
Procedure WriteDatettext: String; dd: Integer);
{Определение даты для дня DD от момента рождения.
'В глобальных переменных d, m и у имеется текущая дата,
'в переменной DAYS – количество дней, прошедших от момента рождения до текущей даты.
'Выводится сообщение TEXT и найденная дата в формате ДД-МЕС-ГГГГ}
const
Names_of_Monthes: array [1..12] of String [3] = (' янв ', ' фев ', ' мар ', ' апр ', ' мая '' июн ',
' июл ', ' авг ', ' сен ', ' окт ', ' ноя ',' дек ');
var
d0,m0,y0,ddd: Integer;
begin {WriteDate}
d0: = d;
m0: = m;
y0: = y;
ddd: = days;
while ddd< >dd do
begin
inc(d0); { Наращиваем число}
if (y0 mod 4 < > 0) and (d0 > Size_of_Month [m0]) or
(y0 mod 4=0) and (d0=30) then
begin {Корректируем месяц}
d0: = 1;
inc(m0);
if m0 = 13 then {Корректируем год}
begin
m0: = 1;
inc(y0)
end
end;
inc(ddd)
end;
WriteLn(text,d0, ' – ', Names_of_Monthes [m0], ' – ',y0)
end; {WriteDate}
{------------------}
var
LongDays: Longlnt; {"Длинная" целая переменная для часов, минут и секунд }
begin {WriteDates}
LongDays: = days;
WriteLn (' Пропшо: ', LongDays,' дней, ', longDays*24,
' часов, ',LongDays*24*60,'минут,',LongDays*24*60*60,'секунд');
WriteDate (' Наименее благоприятный день: ',dmin);
WriteDate ('Наиболее благоприятный день: ',dmax)
end; { WriteDates}
{------------------}
begin {Главная программа}
InputDates (d0,m0,y0,d, m, у);
Get_numbers_of_days (d0,m0,y0,d,m,y,days);
FindMaxMin (dmin, dmax, days);
WriteDates (dmin, dmax, days)
end.