Вычисление даты Пасхи
|
...да, microsoft ваш мал, мягок и завис.
|
function TtheCalendar.CalcEaster: string;
var
B, D, E, Q: Integer;
GF: string;
begin
B := 225 - 11 * (Year mod 19);
D := ((B - 21) mod 30) + 21;
if D > 48 then
Dec(D);
E := (Year + (Year div 4) + D + 1) mod 7;
Q := D + 7 - E;
if Q < 32 then
begin
if ShortDateFormat[1] = 'd' then
Result := IntToStr(Q) + '/3/' + IntToStr(Year)
else
Result := '3/' + IntToStr(Q) + '/' + IntToStr(Year);
end
else
begin
if ShortDateFormat[1] = 'd' then
Result := IntToStr(Q - 31) + '/4/' + IntToStr(Year)
else
Result := '4/' + IntToStr(Q - 31) + '/' + IntToStr(Year);
end;
{вычисление страстной пятницы}
if Q < 32 then
begin
if ShortDateFormat[1] = 'd' then
GF := IntToStr(Q - 2) + '/3/' + IntToStr(Year)
else
GF := '3/' + IntToStr(Q - 2) + '/' + IntToStr(Year);
end
else
begin
if ShortDateFormat[1] = 'd' then
GF := IntToStr(Q - 31 - 2) + '/4/' + IntToStr(Year)
else
GF := '4/' + IntToStr(Q - 31 - 2) + '/' + IntToStr(Year);
end;
end;
|
|