Algoritem za dan v tednu
Iz Wikipedije, proste enciklopedije
Na kateri dan v tednu pade določeni datum lahko določimo z različnimi algoritmi. Eden bolj enostavnih postopkov je Zellerjev postopek (imenovan tudi Zellerjeva kongruenca).
Kateri dan v tednu je bil 7. december 1941?
Uporabimo naslednje spremenljivke:
dan ... dan v mesecu (7)
mes ... mesec -2; če je mesec ni januar ali februar
mesec +10; če je mesec januar ali februar; v tem primeru leto zmanjšamo za 1
stol ... prvi dve števki letnice (19)
leto ... zadnji dve števki letnice (41)
kjer je
celi del števila
Število x mod 7 nam da dan v tednu: 0..nedelja, 1..ponedeljek, ..., 6..sobota.
Enačba velja za gregorijanski koledar, ki velja približno do leta 4500, ko se bo tudi v tem koledarju nabral 1 dan razlike.
[uredi] Program
Funkcijski podprogram v pascalu:
function zeller(D, M, L: integer): integer; {Datum v obliki D.M.L}
var x, dan, mes, leto, stol: integer;
begin
dan:=D;
if M > 2 then mes:=M-2
else begin mes:=M+10; L:=L-1; end;
leto:=L mod 100;
stol:=L div 100;
x:=dan + (13*mes-1) div 5 + 5 * leto div 4 + 21 * stol div 4;
zeller:=x mod 7; { 0..nedelja, 1..ponedeljek, ..., 6..sobota }
end;{zeller}

