Algorytm - wyliczanie dni roku

0

Gdzie mozna znalezc jakis algorytm na wyliczenie dni danego roku? tzn. ile ma dni, i kiedy przypada dany dzien w jaki dzien tygodnia.

0

Ile rok ma dni:

function IsLeapYear(Year: Word): Boolean;
0

Przyda Ci się: (autora MisiekSoft)
http://4programmers.net/file.php?id=1875

N a p e w n o się przyda: (autor CinekCool)
http://4programmers.net/file.php?id=1427

0
function IleRokMaDni(Rok: word): word;
begin
if (Rok mod 4=0) then result:=366 else result:=365;
end;
0
Szczawik napisał(a)
if (Rok mod 4=0) then result:=366 else result:=365;

To jest błędny algorytm, działa tylko w kalendarzu juliańskim, cokolwiek przestarzałym. W kalendarzu gregoriańskim, który u nas obowiązuje od XVI wieku:

 if (Rok mod 4)=0 then
    if (Rok mod 100)=0 then
      if (Rok mod 400)= 0 then
        Result:=366
      else
      Result:=365
    else
    Result:=366
 else
 Result:=365;

Oczywiście łatwiej użyć IsLeapYear, DaysInAYear lub DaysInYear (dwa ostatnie wymagają DateUtils), ale pytanie było o algorytm.

1 użytkowników online, w tym zalogowanych: 0, gości: 1