Difference between revisions of "Template:Gregorian serial date"

From blackwiki
Jump to navigation Jump to search
imported>Jo-Jo Eumerus
m (Changed protection level for "Template:Gregorian serial date": Allowing template editors ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite)))
imported>Johnuniq
(use Module:Age for greater consistency between age templates and ability to detect invalid dates)
 
Line 1: Line 1:
{{#expr:  
+
{{#invoke:age|gsd}}<noinclude>{{documentation}}</noinclude>
        <!--Days from all years past:-->
 
 
 
        + (({{{year|{{CURRENTYEAR}}}}} - 1) * 365)
 
        + ((({{{year|{{CURRENTYEAR}}}}} - 1) - (({{{year|{{CURRENTYEAR}}}}} - 1) mod 4)) / 4)    <!--add a day for every leap-->
 
        - ((({{{year|{{CURRENTYEAR}}}}} - 1) - (({{{year|{{CURRENTYEAR}}}}} - 1) mod 100)) / 100) <!--subtract 100 year exception-->
 
        + ((({{{year|{{CURRENTYEAR}}}}} - 1) - (({{{year|{{CURRENTYEAR}}}}} - 1) mod 400)) / 400) <!--readd 400 year exception-->
 
 
 
      <!--Days so far this year:-->
 
 
        + {{ #ifexpr:    <!--add days for past months this year--> <!--Gives 1 or 2 extra days because of February-->
 
                    ({{{month|{{CURRENTMONTH}}}}} - 1) < 8
 
                    | ( ({{{month|{{CURRENTMONTH}}}}} - 1) * 30.5 round 0)
 
                    | ( ({{{month|{{CURRENTMONTH}}}}} - 1) * 30.5 + 0.9 round 0 )
 
          }}
 
        - {{ #ifexpr: ({{{month|{{CURRENTMONTH}}}}} <= 2) | 0 | 
 
            {{ #ifexpr:    <!-- if leap year  -->
 
                    ({{{year|{{CURRENTYEAR}}}}} / 4) = ({{{year|{{CURRENTYEAR}}}}} / 4 round 0)          <!--If divisible by 4-->
 
                      and ({{{year|{{CURRENTYEAR}}}}} / 100 != {{{year|{{CURRENTYEAR}}}}} / 100 round 0)  <!--and not by 100-->
 
                | 1 | 2
 
            }}
 
          }}
 
        + {{ #ifexpr: ({{{month|{{CURRENTMONTH}}}}} <= 2) | 0 |
 
            {{ #ifexpr: <!--400 year exception-->
 
                    ({{{year|{{CURRENTYEAR}}}}} / 400) = ({{{year|{{CURRENTYEAR}}}}} / 400 round 0)
 
                | 1 | 0
 
            }}
 
          }}
 
        + {{{day|{{CURRENTDAY}}}}}
 
}}{{#ifexpr: {{{year|{{CURRENTYEAR}}}}} < 1 |
 
        _ERROR - Can not handle dates before January 1, 1 A.D.
 
  }}<noinclude>{{documentation}}</noinclude>
 

Latest revision as of 02:41, 1 May 2018

739418

Template documentation[view] [edit] [history] [purge]

Usage

This template gives the serial day according to the proleptic Gregorian calendar, hence with the leap year exceptions of the 100 and 400 year rule, and with backward extrapolation, including year 0 and negative years, with Monday, 1 Jan 1 being day 1. This template handles . By default this template gives the serial for today. To find the serial for another date fill in the date into this code: {{Gregorian serial date|month = |day = |year = }}

Today's date is 739418.

Examples

  • {{gsd|year=-401|month=1|day=1}} gives -146827
  • {{gsd|year=-401|month=12|day=31}} gives -146463
  • {{gsd|year=-400|month=1|day=1}} gives -146462
  • {{gsd|year=-400|month=12|day=31}} gives -146097
  • {{gsd|year=-1|month=1|day=1}} gives -730
  • {{gsd|year=-1|month=12|day=31}} gives -366
  • {{gsd|year=0|month=1|day=1}} gives -365
  • {{gsd|year=0|month=12|day=31}} gives 0
  • {{gsd|year=1|month=1|day=1}} gives 1
  • {{gsd|year=1|month=12|day=31}} gives 1
  • {{gsd|year=2000|month=12|day=31}} gives 730485 (5 times the number of days of a cycle, 146,097)
  • {{gsd|year=1985|month=1|day=1}} gives 724642
  • {{gsd|year=1985|month=4|day=12}} gives 724743
  • {{gsd|year=1981|month=8|day=12}} gives 723404
  • {{gsd|year=1953|month=10|day=2}} gives 713228

See also