Start a new topic

WIKI METHOD 2 for WeekDay from yr 1583 to 9999

If there is no weekday built-in function in tadabase ...this website gives few methods - See bottom of this post - that seems quick to implement if tadabase finds a way to calculate the "mod". (modulo) part of this calculation...


Ref : https://fr.wikibooks.org/wiki/Curiosit%C3%A9s_math%C3%A9matiques/Trouver_le_jour_de_la_semaine_avec_une_date_donn%C3%A9e
Method 2
For a day of the day / year / year where "day" takes a value of 01 to 31, "month" from 01 to 12 and "year" from 1583 to 9999, use the formula:

c = (14 - months) / 12

In fact, c = 1 for January and February, c = 0 for the other months.

y = year - c

m = month + 12 * c - 2

d = (day + y + y / 4 - y / 100 + y / 400 + (31 * m) / 12) mod 7

The answer obtained for d then corresponds to a day of the following week:

0 = Sunday, 1 = Monday, 2 = Tuesday, etc.

Remarks
In all divisions "/", only the whole part of the result is kept. For example, 35/4 = 8.

Finally, mod 7 means "division by 7", it is "the result is the rest of the division by 7".

(For example, 23 mod 7 = 2, because the rest is 2.)

Example
What day is March 13, 2004?

On the calculation c, y and m:

c = (14 - 3) / 12 = 0, y = 2004 - 0 = 2004 and m = 3 + 12 * 0 - 2 = 1.

We then find:

d = (13 + 2004 + 2004/4 - 2004/100 + 2004/400 + (31 * 1) / 12) mod 7

d = (13 + 2004 + 501 - 20 + 5 + 2) mod 7

d = 2505 mod 7 = 6 (for 2505/7 = 357 and the remaining is 6.)

So March 13, 2004 was a Saturday
1 Comment

(Where did the Like button go?)  I appreciate you sharing!

Login or Signup to post a comment