Solka’s Universal Formula for Day of
Week Calculation
W = D + M
+ Y
Year Offset Y:
Y = [(5*X)7 * (Y int 4*X) + Y4*X + Y4*X int
4 –
Y int 100
+ Y int 400 – 1]7
W – day of week; Sun=0
… Sat=6
D – day
M – month offset; 0; 3; 3 / 6;
1; 4 / 6; 2; 5 / 0; 3; 5
for January – December
Y – year offset
Y – year
X – positive integer
lower index – mod
lower index – mod
examples
X=100
X=100
Y = [4Y int 400 + Y400 + Y400 int 4 – Y int 100 – 1]7
X=25
Y = [5Y int 100 + Y100 + Y100 int
4 + Y int 400 – 1]7
X=10
Y = [Y int 40 + Y40 + Y40 int
4 – Y int 100 + Y int 400 – 1]7
August 23, 1994
example X
=100
W = (23 + 2 + 5007*1994int400 + 1994400 + 1994400int4
–
– 1994int100 + 1994int400
- 1)7
= (25 + 3*1994int400 + 394 + 394int4 - 19 + 4 - 1)7
= (25 + 3*1994int400 + 394 + 394int4 - 19 + 4 - 1)7
= (25 + 3*4 + 394 + 98 – 16)7
= (25 + 12 + 394 + 98 – 16)7
= 513/7 ==> 73 remainder 2 ==> Tuesday
= 513/7 ==> 73 remainder 2 ==> Tuesday
August 23, 1994
example X
=25
W = (23 + 2 + 1257*1994int100 + 1994100 + 1994100int4
–
– 1994int100 + 1994int400
- 1)7
= (25 + 6*1994int100 + 94 + 94int4 - 19 + 4 - 1)7
= (25 + 6*1994int100 + 94 + 94int4 - 19 + 4 - 1)7
= (25 + 6*19 + 94 + 23 – 16)7
= (25 + 114 + 94 + 23 – 16)7
= 240/7 ==> 34 remainder 2 ==> Tuesday
= 240/7 ==> 34 remainder 2 ==> Tuesday
August 23, 1994
example X
=10
W = (23 + 2 + 507*1994int40 + 199440 + 199440int4
–
– 1994int100 + 1994int400
- 1)7
= (25 + 1*1994int40 + 34 + 34int4 – 19 + 4 - 1)7
= (25 + 1*1994int40 + 34 + 34int4 – 19 + 4 - 1)7
= (25 + 3*49 + 34 + 8 – 16)7
= (25 + 147 + 34 + 8 – 16)7
= 198/7 ==> 28 remainder 2 ==> Tuesday
= 198/7 ==> 28 remainder 2 ==> Tuesday
A partition of the year into "the century" and "the year
in the century" will get:
Y = 100H + E with H = Y int 100 and E=Y100
Which would correspond to the mathematical form:
Y = H + E
with H = [5 H + H int
4 – 1]7 and E = [E + E int
4]7
Year in Century Offset E:
E = [(5*X)7 *
(E int 4*X) + E4*X + E4*X int 4]7
H – century
E – year in century
H – century offset
E – year in century offset
X – positive integer
(1 … 25)
Solka’s Universal Formula corresponds to their special cases …
... Zeller’s Formula
W = (D +
2,6(M + 1) int 1 + E + E int 4 + H int 4 – 2H)7
W – day of week; Sat=0
… Fri=6
D – day
M – month; Mar=3 …
Jan=13, Feb=14
E – year in century
(adjusted Gregorian date March - February)
H – century
August 23, 1994
W = (23 + 2,6*(8+1)int1 + 94 + 94int4 + 19int4 - 2*19)7
= (23 + 23,4int1 + 94 + 23,5int1 + 4,75int1 – 38)7
= (23 + 23,4int1 + 94 + 23,5int1 + 4,75int1 – 38)7
= (23 + 23 + 94 + 23 + 4 – 38)7
= 129/7 ==> 18 remainder 3 ==> Tuesday
= 129/7 ==> 18 remainder 3 ==> Tuesday
... Gauss'/Sokolow’s Formula
W = (D + M + 3E + 5E4
- 2H4)7
W – day of week; Sat=0
… Fri=6
D – day
M – month offset; 0; 3; 3 / 6;
1; 4 / 6; 2; 5 / 0; 3; 5 for
January – December
E – year in century
(standard Gregorian date January - December)
H – century
August 23, 1994
W = (23 + 2 + 3 * 94 + 5 * 944 – 2 * 194)7
= (23 + 2 + 282 + 10 – 6)7
= (23 + 2 + 282 + 10 – 6)7
= 311/7 ==> 44 remainder 3 ==> Tuesday
... X=7 transforms the universal formula into "sun cycle of 28 years" formula
E = [E28 + E28 int 4]7
... X=7 transforms the universal formula into "sun cycle of 28 years" formula
E = [E28 + E28 int 4]7
E – year in century offset
E – year in century
... X=3 transforms the universal formula into Lewis' Caroll's formula
E = [E int 12 + E12 + E12 int 4]7
... X=1 transforms the universal formula into Dioysius’ Exiguus’ classic formula
E = [E + E int 4]7
E – year in century
... X=3 transforms the universal formula into Lewis' Caroll's formula
E = [E int 12 + E12 + E12 int 4]7
... X=1 transforms the universal formula into Dioysius’ Exiguus’ classic formula
E = [E + E int 4]7
Hans-Christian Solka
July 19, 2013
revised
May 17, 2014
revised
May 17, 2014