- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
function fnGetWeekDay:integer;
//функция fnGetWeekDay возвращает день недели
var
CurDate: date;
dd,mm,yy: word;
cent, month, iRes : integer;
Begin
CurDate = CurrentDate;
DecodeDate(CurDate,yy,mm,dd);
month = mm;
if mm < 3 then mm = mm + 10
else mm = mm - 2;
if mm > 10 then yy = yy - 1;
cent = yy div 100;
yy = yy mod 100;
iRes = ((2.6*mm-0.2) div 1) + dd + yy + (yy div 4) + (cent div 4) - 2*cent;
iRes = ((iRes+777) mod 7);
if (month == 5) or (month == 7) or (month == 10) or (month == 12) then iRes = iRes - 1;
if iRes == -1 then result = 6
else if iRes == 0 then result = 7
else result = iRes;
End; // fnGetWeekDay
Это не совсем Delphi. Это нечто с крайне похожим синтаксисом.
Почему нельзя было использовать (CurrentDate - <какое-нибудь воскресенье>) mod 7 я не знаю.