caster@eecs.cs.pdx.edu (Brad J. Caster) (02/27/90)
Has everyone heard of Zeller's Congruence? Assuming some of us haven't,
here it is:
D is the day of the month.
M is the month with March being 1 and January and February being
months 11 and 12 of the previous year.
C is the century.
Y is the year.
d is the day of the week with Sunday as 0 and Saturday as 6.
d = ((26*M - 2)//10 + D + Y + Y//4 + C//4 - 2*C)
(// is integer division with truncation)
[Yes, the part above looks alot like what appeared in another
news group years ago. I only have the information, now, not
the poster's name. If I did, I'd give him/her credit. Maybe
he/she doesn't read this group (I'm safe...). ]
---Rest for HP-28S---
If the stack looks like this,: 3: mm
2: dd
1: ccyy
CAL will display the days of the week for the week of the date given.
[CAL]
________________________
<< CLLCD 100 / DUP IP
SWAP FP 100 * 4 ROLL
2 -
IF DUP 0 <=
THEN 12 + SWAP 1 -
SWAP
END -> D C Y M
<< 26 M * 2 - 10 /
IP D + Y DUP 4 / IP
+ + C 2 * - C 4 / IP
+ 7 MOD "" SWAP NEG
D + DUP 6 +
FOR I I
IF DUP 0 <=
THEN DROP
" "
ELSE ->STR
IF DUP SIZE
1 ==
THEN " "
ELSE " "
END +
END +
NEXT
"SU MO TU WE TH FR SA"
1 DISP 2 DISP
>>
>>
________________________caster@eecs.cs.pdx.edu (Brad J. Caster) (02/27/90)
Oops! I'll catch myself before anyone else gets a chance.
In the formula, add 'mod 7' (modulo 7):
> d = ((26*M - 2)//10 + D + Y + Y//4 + C//4 - 2*C) mod 7
-----