Jó ez az öröknaptár algoritmus? Részletek lent.
Tehát egy dátumról - év,hó,nap - (1582 utáni) eldönti, hogy a hét melyik napjára esik:
Y = év-1
n = Y + [Y/4] - [Y/100] + [Y/400] + hónap_korr + nap
hónap_korr ={0,3,3,6,1,4,6,2,5,0,3,5}
n-ből le kell vonni egyet, kivéve ha a dátum szökőévben szökőnap utánra esik (>=márc.1).
n mod 7 adja a napot: 0:hétfő, 1:kedd ...
[]= egészrész
...De egyébként jónak tűnik (legalábbis 1900.01.01-2079.08.03 között :-)
(Excelben megcsináltam szórakozásképpen – Jé, a buta Excel 2003 nem tudja, hogy 1900 nem szökőév volt...)
És visszavonom az előzőt, tkp. érthető ez így.
(megj.:
@"szökőévben szökőnap utánra esik":
vigyázzunk a megfogalmazással: a szökőnap elvileg febr. 24. – ld. pl. [link] –, bár igaz, hogy egyre több naptárban 29-ére írják)
Hiányzott a szökőév definíció:
(év mod 4)=0 ÉS ((év mod 100)<>0 VAGY (év mod 400)=0)
Szerintem is jó. Sőt, egyszerűsíthető, fejben számolható, ha pl. év >2000:
Y = év - 2001 is működik ( - [Y/100] + [Y/400] elhagyható) és
ha pl. év >1900:
Y = év - 1901 is működik ( - [Y/100] + [Y/400] elhagyható), de itt még +1.
Persze a fejben számoláshoz meg kell jegyezni egy 12 elemű tömböt...
Ha csak egy kicsit is megy a fejszámolás, akkor ezzel villoghatsz a haverok előtt!
Az 1900-as, 2000-es évekre gondolok.
Szerintem simán, fejből, pár mp alatt!
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!