Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

HOW TO CALCULATE THE DAY OF THE WEEK FOR DATES AS OF 15.x.1582

3 views
Skip to first unread message

lac...@ebony.ppc.ubc.ca

unread,
Mar 28, 2010, 9:07:12 AM3/28/10
to

HOW TO CALCULATE THE DAY OF THE WEEK FOR DATES AS OF 15.x.1582
based on Hans' E-Z Wondrous 2-Fold 3-Step 4-Function Calculator Method

This is a more involved method to calculate the day of the week
for Gregorian calendar dates from 15.x.1582 and as far into the
future as workable using standard four-function calculators and
certain mobile phones via a generalised formula requiring fewer
key-clicks than any previous method (not using tables).

Given:

Day.Month.Year as a Date on the Gregorian calendar as of
15.octob.1582
&
YLJLD as the 'Year in which the Last Julian Leap Day occurred' prior to
the given Date as if for a Julian Calendar whose years begin on 1.jan.
&
Century as a nominal "age" for each hundred of years as of 1.march.XY00
(only one Lag offset thereby required for an entire Gregorian Century)
so that if YLJLD = XYQR, then Century = XY (starting with Century 15);
&
delta = Year - YLJLD;

one can convert the given Date into a day of the week after completing
the 4 steps below--with 44 key-clicks or less, without any mental
multiplication or division or conditional branches.


STEP 0. Calculate the Lag of the identical Julian Date:

Integer(Century/4) + 2 - Century

Step 0.a Calculate Integer(Century/4)

Divide Century by 4. If the result has a decimal portion,
re-enter just the integer portion;

Step 0.b Continue with the remainder of the formula

Remember the result or store it in memory.


STEP 1. Calculate the given Date's MonthIndex:

Month * 2.56 + 93

and then drop the fraction, and the hundreds digit, if any,
to get an integer less than 100, e.g. 123.72 becomes 23;
remember the result for use in Step 2.


STEP 2. Apply the generalised date conversion formula:

(YLJLD/.8 + delta + MonthIndex + Day + Lag) / 7

(This also converts any Julian Date as of 1.iii.IV: Because
the "identical Julian date" is the same, it has no Lag.)


STEP 3. Apply Hans' keypad mapping:

Take the first digit after the decimal point (if none, use 0)
and map that to a day using the following patterns:

+-----+-----+-----+ +-----+-----+-----+
| Fri | Sat | | | 1 | 2 | 3 |
| 7 | 8 | 9 | | Mon | Tue | |
+-----+-----+-----+ +-----+-----+-----+
| Wed | Thu | | | 4 | 5 | 6 |
| 4 | 5 | 6 | | Wed | Thu | |
+-----+-----+-----+ +-----+-----+-----+
| Mon | Tue | | | 7 | 8 | 9 |
| 1 | 2 | 3 | | Fri | Sat | |
+-----+-----+-----+ +-----+-----+-----+
| Sun | | 0 |
| 0 | | Sun |
+-----+ +-----+

(This is equivalent to assigning days to remainders of divisions by 7
as for: Sun=0 Mon=1 Tue=2 Wed=3 Thu=4 Fri=5 Sat=6.)


Lag is the number of days that a Gregorian date to be converted falls before
the same Julian date. It was zero for Century 02, during which the Gregorian
Calendar, if already implemented beforehand, would have been the same as the
Julian--thus leading to Hans' Julian Step 2 formula. It must be decreased by
1 for every March 1st preceded by February 29th in the Julian but not in the
Gregorian calendar. Lag is now -13 and will be -14 as of 1.iii.MMC to start
off Century 21 when Hans' shorter Julian formula applies again to Gregorian
dates, the last time being in Centuries 11 & 12 when it was -7 in both. In
Century 00 as of 1.iii.IV, it was +2, which is why 2 is added in Step 1.


EXAMPLE 0. February 29th, 1904 YLJLD = 1900 delta = 4 Century = 19

19/4 = 4.75
Lag = 4 + 2 - 19 = -13
2 * 2.56 + 93 = 98.12 (MonthIndex = 98)
1900 / .8 + 4 + 98 + 29 - 13
Divide by 7 = 356.142857...
first decimal = 1 Day of Week = Mon


EXAMPLE 1. December 31st, 2100 YLJLD = 2100 delta = 0 Century = 21

21/4 = 5.25
Lag = 5 + 2 - 21 = -14 (in effect = 0 as in Hans' Julian formula)
12 * 2.56 + 93 = 123.72 (MonthIndex = 23)
2100 / .8 (+ 0) + 23 + 31 -14
Divide by 7 = 380.714285...
first decimal = 7 Day of Week = Fri


EXAMPLE 2. February 29th, 2000 YLJLD = 1996 delta = 4 Century = 19

19/4 = 4.75
Lag = 4 + 2 - 19 = -13
2 * 2.56 + 93 = 98.12 (MonthIndex = 98)
1996 / .8 + 4 + 98 + 29 - 13
Divide by 7 = 373.285714...
first decimal = 2 Day of Week = Tue


EXAMPLE 3. March 1st, 2000 YLJLD = 2000 delta = 0 Century = 20

20/4 = 5 (no need to re-enter)
Lag = " + 2 - 20 = -13
3 * 2.56 + 93 = 100.68 (MonthIndex = 0)
2000 / .8 (+ 0 + 0) + 1 - 13
Divide by 7 = 354.428571...
first decimal = 4 Day of Week = Wed


The Examples above are for a standard calculator; those for RPN
or algebraic calculators are left as an exercise.

(Hint: re-order Steps and streamline operations.)

--

REFERENCES: http://oz.ccnet.us/dayofweek/
http://groups.google.com/group/sci.math/msg/4d7a1a46382e4f2a

lac...@ebony.ppc.ubc.ca

unread,
Apr 3, 2010, 1:26:09 PM4/3/10
to
[N. B.: This revision uses the constant 94 and 0=Sun, and adds
further parameters to cover all valid Gregorian dates. Please
post comments, if any, via Usenet or via ccnet. Thanks.]

HOW TO CALCULATE THE DAY OF THE WEEK FOR DATES AS OF 15.x.1582

based on Hans' No-Sweat 1-Off 2-Fold 3-Step 4-Function Calculator Method

This is a more involved method to calculate the day of the week
for Gregorian calendar dates from 15.x.1582 and as far into the
future as workable using standard four-function calculators and
certain mobile phones via a generalised formula requiring fewer

key-clicks than any previous method not using tables.

Given:

Day.Month.Year as a Date on the Gregorian calendar as of
15.octob.1582
&
YLJLD as the 'Year in which the Last Julian Leap Day occurred' prior to
the given Date as if for a Julian Calendar whose years begin on 1.jan.
&
Century as a nominal "age" for each hundred of years as of 1.march.XY00

(only one lag Offset thereby required for an entire Gregorian Century)


so that if YLJLD = XYQR, then Century = XY (starting with Century 15)
&
delta = Year - YLJLD

&
yljld as the last two digits of XYQR, such that yljld = QR
&
under as the number of years that Century is less than the next highest
multiple of 4;

one can convert the given Date into a day of the week after completing

the 3 steps below--with 33 key-clicks or less, without any mental
multiplication or division.


STEP 0. Calculate the lag Offset:

under * 2

Remember the result or store it in memory.


STEP 1. Calculate the given Date's MonthIndex:

Month * 2.56 + 94

and then drop the fraction, and the hundreds digit, if any,

to get an integer less than 100, e.g. 124.72 becomes 24;


remember the result for use in Step 2.


STEP 2. Apply the generalised date conversion formula:

(yljld/.8 + delta + MonthIndex + Day + Offset) / 7

Century 00 as of 1.iii.IV, it was +2.


EXAMPLE Z. 29.Feb.1904 Century = 19 yljld = 00 delta = 4 under = 1

1 * 2 = 2
2 * 2.56 + 94 = 99.12 (MonthIndex = 99)
00/.8 + 4 + 99 + 29 + 2
Divide by 7 = 19.142857...


first decimal = 1 Day of Week = Mon


EXAMPLE A. 31.Dec.2100 Century = 21 yljld = 00 delta = 0 under = 3

3 * 2 = 6
12 * 2.56 + 94 = 124.72 (MonthIndex = 24)
00/.8 + 0 + 24 + 31 + 6
Divide by 7 = 8.714285...


first decimal = 7 Day of Week = Fri


EXAMPLE B. 29.Feb.2000 Century = 19 yljld = 96 delta = 4 under = 1

1 * 2 = 2
2 * 2.56 + 94 = 99.12 (MonthIndex = 99)
96/.8 + 4 + 99 + 29 + 2
Divide by 7 = 36.285714...


first decimal = 2 Day of Week = Tue


EXAMPLE C. 1.Mar.2000 Century = 20 yljld = 00 delta = 0 under = 4

4 * 2 = 8
3 * 2.56 + 94 = 101.28 (MonthIndex = 1)
00/.8 + 0 + 1 + 1 + 8
Divide by 7 = 1.428571...


first decimal = 4 Day of Week = Wed


The Examples above are for a standard (running total) calculator;


those for RPN or algebraic calculators are left as an exercise.

(Hint: re-order Steps and streamline operations.)

--

REFERENCES: http://oz.ccnet.us/dayofweek/

http://groups.google.com/group/sci.math/msg/a716e5ca3af3ed28

0 new messages