Код:
Код
type
tDate = record
Day, Month, Year, DayOfWeek : Integer;
end;
function Compare(Date1, Date2 : tDate) : Boolean;
begin
Compare := ( Date1.Year = Date2.Year )
and (Date1.Month = Date2.Month)
and ( Date1.Day = Date2.Day );
end;
procedure DecDay(var Date : tDate);
const
Days : array [1..12] of Integer =
(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
begin
Dec(Date.Day);
if Date.Day = 0 then
begin
Dec(Date.Month);
if Date.Month = 0 then
begin
Dec(Date.Year);
Date.Month := 12;
end;
if Date.Month <> 2 then
Date.Day := Days[Date.Month]
else if (Date.Year mod 100 = 0) and (Date.Year mod 400 = 0) then
Date.Day := 29
else if Date.Year mod 4 = 0 then
Date.Day := 29
else
Date.Day := 28;
end;
Dec(Date.DayOfWeek);
if Date.DayOfWeek = 0 then
Date.DayOfWeek := 7;
end;
const
Week : array [1..7] of String[15] = ('понедельник', 'вторник', 'среда',
'четверг', 'пятница', 'суббота', 'воскресенье');
var
Current, Birth : tDate;
i : Integer;
begin
Write(' Введите день рождения: '); ReadLn(Birth.Day );
Write('Введите месяц рождения: '); ReadLn(Birth.Month);
Write(' Введите год рождения: '); ReadLn(Birth.Year );
Write('Введите сегодняшнее число: '); ReadLn(Current.Day );
Write(' Введите текущий месяц: '); ReadLn(Current.Month);
Write(' Введите текущий год: '); ReadLn(Current.Year );
for i := 1 to 7 do
WriteLn(i, ' - ', Week[i]);
Write('Введите номер сегодняшнего деня недели: '); ReadLn(Current.DayOfWeek);
while Not Compare(Current, Birth) do
begin
//WriteLn(Current.Day, '.', Current.Month, '.', Current.Year, ' - ', Week[Current.DayOfWeek]);
DecDay(Current);
end;
WriteLn('Ваш день рождения приходится на ', Week[Current.DayOfWeek]);
end.
Переделайте,пожалуйста код,чтобы в нём отсутствовали функции
.