Пасха

From
Yuri Gurin (2:467/116.48)
To
Sergei Frolov ()
Date
2003-03-13T23:43:58Z
Area
RU.ALGORITHMS
 Как-то Sergei /_*Frolov*_/ писал к /_*ALL*_/:

 SF>    Нет ли у кого формулы для вычисления даты начала пасхи? (конкретно
 SF> - православной)
 SF>
 SF> Sergei Frolov

    Данный алгоритм был опубликован в электронном издании "Советы по Delphi" Валентина Озерова.

/*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*/;

                                                              *WBR, Gurin Y.*

--- GoldEd 3.00.Beta5+ & Fido Master 2000
 * Origin: I am live... somewhere in time! (2:467/116.48)