Doomsday rule: Difference between revisions
Content added Content deleted
(added RPL) |
(Added Easylang) |
||
Line 606: | Line 606: | ||
2/12/2077: Friday |
2/12/2077: Friday |
||
4/2/2101: Saturday</pre> |
4/2/2101: Saturday</pre> |
||
=={{header|EasyLang}}== |
|||
{{trans|C}} |
|||
<syntaxhighlight> |
|||
func leap year . |
|||
return if year mod 4 = 0 and (year mod 100 <> 0 or year mod 400 = 0) |
|||
. |
|||
func weekday year month day . |
|||
leapdoom[] = [ 4 1 7 2 4 6 4 1 5 3 7 5 ] |
|||
normdoom[] = [ 3 7 7 4 2 6 4 1 5 3 7 5 ] |
|||
c = year div 100 |
|||
r = year mod 100 |
|||
s = r div 12 |
|||
t = r mod 12 |
|||
c_anchor = (5 * (c mod 4) + 2) mod 7 |
|||
doom = (s + t + (t div 4) + c_anchor) mod 7 |
|||
if leap year = 1 |
|||
anchor = leapdoom[month] |
|||
else |
|||
anchor = normdoom[month] |
|||
. |
|||
return (doom + day - anchor + 7) mod 7 + 1 |
|||
. |
|||
wkdays$[] = [ "Sunday" "Monday" "Tuesday" "Wednesday" "Thursday" "Friday" "Saturday" ] |
|||
dates$[] = [ "1800-01-06" "1875-03-29" "1915-12-07" "1970-12-23" "2043-05-14" "2077-02-12" "2101-04-02" ] |
|||
for d$ in dates$[] |
|||
write d$ & " -> " |
|||
a[] = number strsplit d$ "-" |
|||
print wkdays$[weekday a[1] a[2] a[3]] |
|||
. |
|||
</syntaxhighlight> |
|||
=={{header|Factor}}== |
=={{header|Factor}}== |