This site is supported by donations to The OEIS Foundation.
Template:To day of CE/doc
The {{To day of CE}} date and time template returns the day of CE (Christ Era) for a given year, month and day of month.
Contents
Usage
- {{To day of CE|year=year as a nonzero unformatted integer in [1..10000]|month=month as two digit number in [1..12], abbreviation or full name|monthday=day of month}}
or
- {{To day of CE|year as a nonzero unformatted integer in [1..10000]|month as two digit number in [1..12], abbreviation or full name|day of month}}
or
- {{To day of CE}} where year, month and monthday default to local year, local month and local day of month for OEIS Wiki server
Examples
With MySQL, the Days Since 1 A.D. functions give[1]
TO_DAYS(date) returns the number of days since the first day in the year 1 A.D. (there was no year 0). The opposite effect is obtained by using FROM_DAYS(number). mysql> mysql> select TO_DAYS('2000-01-01') ; +-----------------------+ | TO_DAYS('2000-01-01') | +-----------------------+ | 730485 | +-----------------------+ 1 row in set (0.00 sec) mysql> mysql> mysql> SELECT FROM_DAYS(1000000); +--------------------+ | FROM_DAYS(1000000) | +--------------------+ | 2737-11-28 | +--------------------+ 1 row in set (0.02 sec) mysql>
compared to
- {{To day of CE|year=2000|month=01|monthday=01}} gives Expression error: Unexpected < operator. (too low by 364, why?)
- {{To day of CE|year=2737|month=11|monthday=28}} gives Expression error: Unexpected < operator. (too low by 364, why?)
Note that
- The UNIX command cal incorrectly lists 4 AD as a leap year (Vardi 1991);) (Cf. {{ifleapyear}})
Cf. Template talk:To day of CE.
In the evaluations at the right, we add the days for each month of the year, then add (year - 1) * 365 days, then add the leap days for the (year - 1) previous years as if Gregorian calendar rule applies to all, then add correction to get Julian calendar rule for years 1 to min(1582, year - 1), then subtract 1 day if year 4 (not leap year) is in previous years, then subtract 10 days if year > 1582.
Examples with valid input
code result {{To day of CE}} Expression error: Unexpected < operator. {{To day of CE|year=6000|month=01|monthday=10}} Expression error: Unexpected < operator. {{To day of CE|year=4000|month=01|monthday=10}} Expression error: Unexpected < operator. expr|(10) + 3999*365 + (999 - 39 + 9) + (15 - 3) - 1 - 10}} = 1460615 {{{{To day of CE|year=2737|month=11|monthday=28}} Expression error: Unexpected < operator. {{To day of CE|year=2011|month=01|monthday=10}} Expression error: Unexpected < operator. {{To day of CE|year=2011|month=Feb|monthday=10}} Expression error: Unexpected < operator. {{To day of CE|2011|Feb|10}} Expression error: Unexpected < operator. {{To day of CE|year=2011|month=03|monthday=10}} Expression error: Unexpected < operator. {{To day of CE|year=2011|month=Apr|monthday=10}} Expression error: Unexpected < operator. {{To day of CE|year=2011|month=May|monthday=10}} Expression error: Unexpected < operator. expr|(31 + 28 + 31 + 30 + 10) + 2010*365 + (502 - 20 + 5) + (15 - 3) - 1 - 10}} = 734268 {{{{To day of CE|year=2011|month=June|monthday=10}} Expression error: Unexpected < operator. {{To day of CE|year=2011|month=07|monthday=10}} Expression error: Unexpected < operator. {{To day of CE|year=2011|month=08|monthday=10}} Expression error: Unexpected < operator. {{To day of CE|year=2011|month=09|monthday=10}} Expression error: Unexpected < operator. {{To day of CE|year=2011|month=10|monthday=10}} Expression error: Unexpected < operator. {{To day of CE|year=2011|month=11|monthday=10}} Expression error: Unexpected < operator. {{To day of CE|year=2011|month=12|monthday=10}} Expression error: Unexpected < operator. {{To day of CE|year=2011|month=Dec|monthday=31}} Expression error: Unexpected < operator. expr|(365) + 2010*365 + (502 - 20 + 5) + (15 - 3) - 1 - 10}} = 734503 {{{{To day of CE|year=2004|month=Dec|monthday=31}} Expression error: Unexpected < operator. {{To day of CE|year=2005|month=Jan|monthday=01}} Expression error: Unexpected < operator. {{To day of CE|year=2005|month=Dec|monthday=01}} Expression error: Unexpected < operator. {{To day of CE|year=2004|month=Jan|monthday=20}} Expression error: Unexpected < operator. {{To day of CE|year=2000|month=Feb|monthday=29}} Expression error: Unexpected < operator. {{To day of CE|year=2000|month=Mar|monthday=20}} Expression error: Unexpected < operator. {{To day of CE|year=2000|month=Dec|monthday=31}} Expression error: Unexpected < operator. expr|(366) + 1999*365 + (499 - 19 + 4) + (15 - 3) - 1 - 10}} = 730486 {{{{To day of CE|year=1800|month=Jan|monthday=20}} Expression error: Unexpected < operator. {{To day of CE|year=1730|month=Feb|monthday=20}} Expression error: Unexpected < operator. {{To day of CE|year=1600|month=Mar|monthday=20}} Expression error: Unexpected < operator. expr|(31 + 29 + 20) + 1599*365 + (399 - 15 + 3) + (15 - 3) - 1 - 10}} = 584103 {{{{To day of CE|year=1600|month=Dec|monthday=31}} Expression error: Unexpected < operator. {{To day of CE|year=1582|month=Sep|monthday=30}} Expression error: Unexpected < operator. {{To day of CE|year=1582|month=Oct|monthday=4}} Expression error: Unexpected < operator. expr|(31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 4) + 1581*365 + (395 - 15 + 3) + (15 - 3) - 1}} = 577736 {{{{To day of CE|year=1582|month=Oct|monthday=5}} To day of CE error: Invalid monthday (in 1582, Pope Gregory XIII decreed that the day after October 4, 1582 would be October 15, 1582) {{To day of CE|year=1582|month=Oct|monthday=10}} To day of CE error: Invalid monthday (in 1582, Pope Gregory XIII decreed that the day after October 4, 1582 would be October 15, 1582) {{To day of CE|year=1582|month=Oct|monthday=14}} To day of CE error: Invalid monthday (in 1582, Pope Gregory XIII decreed that the day after October 4, 1582 would be October 15, 1582) {{To day of CE|year=1582|month=Oct|monthday=15}} Expression error: Unexpected < operator. expr|(31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 15) + 1581*365 + (395 - 15 + 3) + (15 - 3) - 1 - 10}} = 577737 {{{{To day of CE|year=1582|month=Oct|monthday=31}} Expression error: Unexpected < operator. {{To day of CE|year=1582|month=Nov|monthday=30}} Expression error: Unexpected < operator. {{To day of CE|year=1582|month=Dec|monthday=31}} Expression error: Unexpected < operator. {{To day of CE|year=1400|month=Oct|monthday=31}} Expression error: Unexpected < operator. {{To day of CE|year=1200|month=Dec|monthday=31}} Expression error: Unexpected < operator. {{To day of CE|year=1112|month=Apr|monthday=23}} Expression error: Unexpected < operator. expr|(31 + 29 + 31 + 23) + 1111*365 + (277 - 11 + 2) + (11 - 2) - 1}} = 405905 {{{{To day of CE|year=800|month=Dec|monthday=31}} Expression error: Unexpected < operator. {{To day of CE|year=560|month=Dec|monthday=31}} Expression error: Unexpected < operator. {{To day of CE|year=400|month=Dec|monthday=31}} Expression error: Unexpected < operator. {{To day of CE|year=160|month=Dec|monthday=31}} Expression error: Unexpected < operator. {{To day of CE|year=100|month=Dec|monthday=31}} Expression error: Unexpected < operator. {{To day of CE|year=16|month=Dec|monthday=31}} Expression error: Unexpected < operator. {{To day of CE|year=12|month=Dec|monthday=31}} Expression error: Unexpected < operator. expr|(366) + 11*365 + 2 - 1}} = 4382 {{{{To day of CE|year=8|month=Dec|monthday=31}} Expression error: Unexpected < operator. expr|(366) + 7*365 + 1 - 1}} = 2921 {{{{To day of CE|year=4|month=Dec|monthday=31}} Expression error: Unexpected < operator. expr|(365) + 3*365}} = 1460 {{{{To day of CE|year=1|month=Dec|monthday=31}} Expression error: Unexpected < operator. expr|(365)}} = 365 {{
Examples with invalid input
code result {{To day of CE|year=0|month=Sep|monthday=30}} To day of CE error: Year must be an integer in [1..10000] {{To day of CE|year=50 BC|month=Sep|monthday=30}} To day of CE error: Year must be a nonzero unformatted integer in [1..10000] {{To day of CE|year=-50|month=Sep|monthday=30}} To day of CE error: Year must be an integer in [1..10000] {{To day of CE|year=0|month=Sep|monthday=30}} To day of CE error: Year must be an integer in [1..10000] {{To day of CE|year=20000|month=Sep|monthday=30}} To day of CE error: Year must be an integer in [1..10000] {{To day of CE|year=1600 AD|month=13|monthday=31}} To day of CE error: Year must be a nonzero unformatted integer in [1..10000] {{To day of CE|year=1600|month=13|monthday=31}} To day of CE error: Invalid month {{To day of CE|year=1600|month=0|monthday=31}} To day of CE error: Invalid month {{To day of CE|year=1600|month=Hexember|monthday=31}} To day of CE error: Invalid month {{To day of CE|year=1600|month=08|monthday=0}} To day of CE error: Monthday must be in [1..31] for August 1600 {{To day of CE|year=1600|month=08|monthday=32}} To day of CE error: Monthday must be in [1..31] for August 1600 {{To day of CE|year=1600|month=Sep|monthday=31}} To day of CE error: Monthday must be in [1..30] for September 1600 {{To day of CE|year=2000|month=Feb|monthday=30}} To day of CE error: Monthday must be in [1..29] for February 2000 {{To day of CE|year=1900|month=Feb|monthday=29}} To day of CE error: Monthday must be in [1..28] for February 1900
Code
{{ifint| {{{year|{{{1|{{LOCALYEAR}}}}}}}} | {{#ifexpr: ( ( {{{year|{{{1|{{LOCALYEAR}}}}}}}} >= 1 ) and ( {{{year|{{{1|{{LOCALYEAR}}}}}}}} <= 10000 ) ) | {{#iferror: {{monthnum|{{{month|{{{2|{{LOCALMONTH}}}}}}}}}} | {{error|To day of CE error: Invalid month}} | {{#ifexpr: ( ( {{{monthday|{{{3|{{LOCALDAY}}}}}}}} >= 1 ) and ( {{{monthday|{{{3|{{LOCALDAY}}}}}}}} <= {{monthdays|{{{month|{{{2|{{LOCALMONTH}}}}}}}}|{{{year|{{{1|{{LOCALYEAR}}}}}}}}}} + {{#ifexpr: ( ( {{{year|{{{1|{{LOCALYEAR}}}}}}}} = 1582 ) and ( {{monthnum|{{{month|{{{2|{{LOCALMONTH}}}}}}}}}} = 10 ) ) | 10 <!-- even though Oct 5 to Oct 14 were skipped in 1582, monthday still went up to 31 --> | 0 }} ) ) | {{#ifexpr: not ( ( {{{year|{{{1|{{LOCALYEAR}}}}}}}} = 1582 ) and ( {{monthnum|{{{month|{{{2|{{LOCALMONTH}}}}}}}}}} = 10 ) and ( {{{monthday|{{{3|{{LOCALDAY}}}}}}}} >= 5 ) and ( {{{monthday|{{{3|{{LOCALDAY}}}}}}}} <= 14 ) ) | {{expr| {{yearday|{{{year|{{{1|{{LOCALYEAR}}}}}}}}|{{{month|{{{2|{{LOCALMONTH}}}}}}}}|{{{monthday|{{{3|{{LOCALDAY}}}}}}}} }} + ( (floor ( ({{{year|{{{1|{{LOCALYEAR}}}}}}}} - 1) / 400 ) ) * (100 * (3*365+366) - 3) ) + (floor ( {{min|1582|{{{year|{{{1|{{LOCALYEAR}}}}}}}} - 1}} / 400 ) * 3 ) + <!-- Julian calendar correction --> ( (floor ( ( ({{{year|{{{1|{{LOCALYEAR}}}}}}}} - 1) mod 400 ) / 100) ) * (25 * (3*365+366) - 1) ) + (floor ( ( {{min|1582|{{{year|{{{1|{{LOCALYEAR}}}}}}}} - 1}} mod 400 ) / 100 ) * 1 ) + <!-- Julian calendar correction --> ( (floor ( ( ({{{year|{{{1|{{LOCALYEAR}}}}}}}} - 1) mod 100 ) / 4) ) * (3*365+366) ) + ( ( ({{{year|{{{1|{{LOCALYEAR}}}}}}}} - 1) mod 4 ) * (365) ) - {{#ifexpr: {{{year|{{{1|{{LOCALYEAR}}}}}}}} > 4|1|0}} <!-- Year 4 was not a leap year. --> - {{#ifexpr: {{{year|{{{1|{{LOCALYEAR}}}}}}}} > 1582|10|0}} <!-- in 1582, Pope Gregory XIII decreed that the day after October 4, 1582 would be October 15, 1582 --> }} | {{error|To day of CE error: Invalid monthday (in 1582, Pope Gregory XIII decreed that the day after October 4, 1582 would be October 15, 1582)}} }} | {{error|To day of CE error: Monthday must be in [1..{{monthdays|{{{month|{{{2|{{LOCALMONTH}}}}}}}}|{{{year|{{{1|{{LOCALYEAR}}}}}}}}}}] for {{fullmonth|{{{month|{{{2|{{LOCALMONTH}}}}}}}}}} {{{year|{{{1|{{LOCALYEAR}}}}}}}} }} }} }} | {{error|To day of CE error: Year must be an integer in [1..10000]}} }} | {{error|To day of CE error: Year must be a nonzero unformatted integer in [1..10000]}} }}
See also
- {{daynum}} gives the weekday number (0 to 6) for (Sun to Sat)
- {{day}} gives the standard three letter weekday abbreviation.
- {{fullday}} gives the full weekday name.
- {{monthnum}} gives the month number (padded left with 0 if necessary to get two decimal digits) (01 to 12)
- {{month}} gives the standard three letter month abbreviation.
- {{fullmonth}} gives the full month name.
- {{days in month}} (or {{monthdays}}) gives the number of days in a month (for any year from 1 AD to 10000 AD)
- {{yearday}} returns the day of year from year, month and monthday (for any year from 1 AD to 10000 AD)
- {{ifleapyear}} or {{if leap year}} returns different values depending on whether a given year is a leap year or a common year (for any year from 1 AD to 10000 AD)
- {{is leap year}} predicate function template returns 1 (if true) or 0 (if false) depending on whether a given year is a leap year or a common year (for any year from 1 AD to 10000 AD)
- {{Century}} returns the century for any nonzero (negative or positive) year
- {{Millennium}} returns the millennium for any nonzero (negative or positive) year
- {{to day of CE}} returns the day of CE (Christ Era) from year, month and monthday (for any year from 1 AD to 10000 AD)
- {{from day of CE}} returns year, month and monthday (for any year from 1 AD to 10000 AD) from the day of CE (Christ Era)
- {{date}} for date mathematics (for any year from 1 AD to 10000 AD) (returns the date offset a specified number of days from a given date)
- {{days between}} for date mathematics (for any years from 1 AD to 10000 AD) (returns the number of days between two dates)
Notes
- ↑ MySQL Tutorial » Date Time Functions » Introduction » Days Since 1 A.D., Copyright 2009.