Doomsday rule: Difference between revisions

Content added Content deleted
m (→‎{{header|Wren}}: Minor tidy)
Line 614: Line 614:
.
.
func weekday year month day .
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 ]
normdoom[] = [ 3 7 7 4 2 6 4 1 5 3 7 5 ]
c = year div 100
c = year div 100
Line 622: Line 621:
c_anchor = (5 * (c mod 4) + 2) mod 7
c_anchor = (5 * (c mod 4) + 2) mod 7
doom = (s + t + (t div 4) + c_anchor) mod 7
doom = (s + t + (t div 4) + c_anchor) mod 7
anchor = normdoom[month]
if leap year = 1
anchor = leapdoom[month]
if leap year = 1 and month <= 2
anchor = (anchor + 1) mod1 7
else
anchor = normdoom[month]
.
.
return (doom + day - anchor + 7) mod 7 + 1
return (doom + day - anchor + 7) mod 7 + 1