ВУЗ:
Составители:
Рубрика:
16
Uses crt;
Const sto=36524;
Type year=1900..2100; month=1..12; day=1..31;
data=record gd:year; mc:month; dn:day end;
Var n,n_max,s:integer; dm,dc,dr:data;
Function visokos (gd:year): boolean;
(* Является ли год gd високосным? *)
begin
visokos:=(gd mod 400=0) or (gd mod 100<>0) and (gd mod
4=0)
end;{visokos}
Function dmes (mc:month; gd:year): integer;
(* Число дней в месяце mc года gd *)
begin
case mc of
4,6,9,11:dmes:=30;
1,3,5,7,8,10,12:dmes:=31
else if visokos(gd) then dmes:=29 else dmes:=28
end;
end;{dmes}
Function pos (d1,d2:data): boolean;
(* Позже ли дата d2 даты d1 ?*)
begin
pos:=(d2.gd>d1.gd) or (d2.gd=d1.gd) and ((d2.mc>d1.mc)
or
(d2.mc=d1.mc) and (d2.dn>d1.dn))
end;{pos}
Function days (d1,d2:data): integer;
(* Число дней от даты d1 до даты d2 *)
function dn_gd(d1,d2:data):integer;
(* Число дней от начала года gd1 до начала года gd2 *)
var dn,gd:integer;
begin
dn:=0;
for gd:=d1.gd to d2.gd-1 do
if visokos(gd) then dn:=dn+366 else dn:=dn+365;
dn_gd:=dn;
end;{dn_gd}
function dn_dt(dt:data):integer;
(* Число дней от начала года dt.gd до даты dt*)
var dn,mc:integer;
begin
dn:=0;
for mc:=1 to dt.mc-1 do dn:=dn+dmes(mc,dt.gd);
dn_dt:=dn+dt.dn;
end;{dn_gd}
Страницы
- « первая
- ‹ предыдущая
- …
- 14
- 15
- 16
- 17
- 18
- …
- следующая ›
- последняя »