PascalABC.NET 3.4.2, сборка 1859 от 08.11.2018
Внимание! Если программа не работает, обновите версию!
type
Date = class
private
Дата: System.DateTime;
public
день, месяц, год: integer;
constructor(d, m, y: integer);
begin
try
Дата := new System.DateTime(y, m, d);
(день, месяц, год) := (d, m, y);
except
Println('Недопустимая дата');
(день, месяц, год) := (1, 1, 0);
end
end;
procedure ДобавитьДни(dd: integer);
begin
Дата := Дата.AddDays(dd);
(день, месяц, год) := (Дата.Day, Дата.Month, Дата.Year)
end;
function ГодВисокосный: boolean;
begin
if год mod 400 = 0 then Result := True
else
if год mod 100 = 0 then Result := False
else Result := год mod 4 = 0
end;
end;
begin
var (d, m, y) := ReadInteger3('Введите день, месяц и год:');
var dd := new Date(d, m, y);
if dd.ГодВисокосный then Println('Год високосный')
else Println('Год не високосный');
dd.ДобавитьДни(5);
Print('Новая дата', $'{dd.Дата:dd.MM.yyyy}')
end.
Пример
Введите день, месяц и год: 9 11 2018
Год не високосный
Новая дата 14.11.2018