Doomsday rule: Difference between revisions

Added Easylang
(added RPL)
(Added Easylang)
Line 606:
2/12/2077: Friday
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}}==
1,983

edits