Ordinal date

From testwiki
Jump to navigation Jump to search

Template:Short description Template:Inline Template:Infobox

The top line of the board reads GMT 295: 11:31:54 (GMT was a synonym for UTC).
Mission control center's board with time data, displaying coordinated universal time with ordinal date (without year) prepended, on OctoberTemplate:Nbsp22, 2013 Template:Nobr

An ordinal date is a calendar date typically consisting of a year and an ordinal number, ranging between 1 and 366 (starting on January 1), representing the multiples of a day, called day of the year or ordinal day number (also known as ordinal day or day number). The two parts of the date can be formatted as "YYYY-DDD" to comply with the ISO 8601 ordinal date format. The year may sometimes be omitted, if it is implied by the context; the day may be generalized from integers to include a decimal part representing a fraction of a day.

Nomenclature

Ordinal date is the preferred name for what was formerly called the "Julian date" or Template:Mono, or Template:Mono, which still seen in old programming languages and spreadsheet software. The older names are deprecated because they are easily confused with the earlier dating system called 'Julian day number' or Template:Mono, which was in prior use and which remains ubiquitous in astronomical and some historical calculations.

The U.S. military sometimes uses a system they call the "Julian date format",[1] which indicates the year and the day number (out of the 365 or 366 days of the year). For example, "11 December 1999" can be written as "1999345" or "99345", for the 345th day of 1999.[2]

Calculation

Template:Original research Computation of the ordinal day within a year is part of calculating the ordinal day throughout the years from a reference date, such as the Julian date. It is also part of calculating the day of the week, though for this purpose modulo 7 simplifications can be made.

In the following text, several algorithms for calculating the ordinal day Template:Mvar are presented. The inputs taken are integers Template:Mvar, Template:Mvar and Template:Mvar, for the year, month, and day numbers of the Gregorian or Julian calendar date.

Trivial methods

The most trivial method of calculating the ordinal day involves counting up all days that have elapsed per the definition:

  1. Let O be 0.
  2. From Template:Math, add the length of month Template:Mvar to O, taking care of leap year according to the calendar used.
  3. Add d to O.

Similarly trivial is the use of a lookup table, such as the one referenced.[3]

Zeller-like

The table of month lengths can be replaced following the method of encoding the month-length variation in Zeller's congruence. As in Zeller, the Template:Mvar is changed to Template:Math if Template:Math. It can be shown (see below) that for a month-number Template:Mvar, the total days of the preceding months is equal to Template:Math. As a result, the March 1-based ordinal day number is Template:Math.

The formula reflects the fact that any five consecutive months in the range March–January have a total length of 153 days, due to a fixed pattern 31–30–31–30–31 repeating itself twice. This is similar to encoding of the month offset (which would be the same sequence modulo 7) in Zeller's congruence. As Template:Sfrac is 30.6, the sequence oscillates in the desired pattern with the desired period 5.

To go from the March 1 based ordinal day to a January 1 based ordinal day:

  • For Template:Math (March through December), Template:Nowrap where Template:Math is a function returning 0 or 1 depending whether the input is a leap year.
  • For January and February, two methods can be used:
    1. The trivial method is to skip the calculation of Template:Math and go straight for Template:Math for January and Template:Math for February.
    2. The less redundant method is to use Template:Math, where 306 is the number of dates in March through December. This makes use of the fact that the formula correctly gives a month-length of 31 for January.

"Doomsday" properties:

With m=2n and d=m gives

O=63.2n91.4

giving consecutive differences of 63 (9 weeks) for Template:Nowrap 3, 4, 5, and 6, i.e., between 4/4, 6/6, 8/8, 10/10, and 12/12.

m=2n+1 and d=m+4 gives

O=63.2n56+0.2

and with m and d interchanged

O=63.2n56+1190.4

giving a difference of 119 (17 weeks) for Template:Nowrap (difference between 5/9 and 9/5), and also for Template:Nowrap (difference between 7/11 and 11/7).

Table

To the day of 13
Jan
14
Feb
3
Mar
4
Apr
5
May
6
Jun
7
Jul
8
Aug
9
Sep
10
Oct
11
Nov
12
Dec
i
Add 0 31 59 90 120 151 181 212 243 273 304 334 3
Leap years 0 31 60 91 121 152 182 213 244 274 305 335 2
Algorithm 30(m1)+0.6(m+1)i

For example, the ordinal date of April 15 is Template:Nowrap in a common year, and Template:Nowrap in a leap year.

Month–day

Template:Original research The number of the month and date is given by

m=od/30+1
d=mod(od,30)+i0.6(m+1)

the term mod(od,30) can also be replaced by od30(m1) with od the ordinal date.

  • Day 100 of a common year:
m=100/30+1=4
d=mod(100,30)+30.6(4+1)=10+33=10
April 10.
  • Day 200 of a common year:
m=200/30+1=7
d=mod(200,30)+30.6(7+1)=20+34=19
July 19.
  • Day 300 of a leap year:
m=300/30+1=11
d=mod(300,30)+20.6(11+1)=0+27=5
November - 5 = October 26 (31 - 5).

Helper conversion table

ord.
date
common
year
leap
year
001 Template:01 Jan
010 10 Jan
020 20 Jan
030 30 Jan
032 Template:01 Feb
040 Template:09 Feb
050 19 Feb
060 Template:01 Mar 29 Feb
061 Template:02 Mar Template:01 Mar
070 11 Mar 10 Mar
080 21 Mar 20 Mar
090 31 Mar 30 Mar
091 Template:01 Apr 31 Mar
092 Template:02 Apr Template:01 Apr
100 10 Apr Template:09 Apr
ord.
date
comm.
year
leap
year
110 20 Apr 19 Apr
120 30 Apr 29 Apr
121 Template:01 May 30 Apr
122 Template:02 May Template:01 May
130 10 May Template:09 May
140 20 May 19 May
150 30 May 29 May
152 Template:01 Jun 31 May
153 Template:02 Jun Template:01 Jun
160 Template:09 Jun Template:08 Jun
170 19 Jun 18 Jun
180 29 Jun 28 Jun
182 Template:01 Jul 30 Jun
183 Template:02 Jul Template:01 Jul
190 Template:09 Jul Template:08 Jul
ord.
date
comm.
year
leap
year
200 19 Jul 18 Jul
210 29 Jul 28 Jul
213 Template:01 Aug 31 Jul
214 Template:02 Aug Template:01 Aug
220 Template:08 Aug Template:07 Aug
230 18 Aug 17 Aug
240 28 Aug 27 Aug
244 Template:01 Sep 31 Aug
245 Template:02 Sep Template:01 Sep
250 Template:07 Sep Template:06 Sep
260 17 Sep 16 Sep
270 27 Sep 26 Sep
274 Template:01 Oct 30 Sep
275 Template:02 Oct Template:01 Oct
280 Template:07 Oct Template:06 Oct
ord.
date
comm.
year
leap
year
290 17 Oct 16 Oct
300 27 Oct 26 Oct
305 Template:01 Nov 31 Oct
306 Template:02 Nov Template:01 Nov
310 Template:06 Nov Template:05 Nov
320 16 Nov 15 Nov
330 26 Nov 25 Nov
335 Template:01 Dec 30 Nov
336 Template:02 Dec Template:01 Dec
340 Template:06 Dec Template:05 Dec
350 16 Dec 15 Dec
360 26 Dec 25 Dec
365 31 Dec 30 Dec
366 Template:N/A 31 Dec

Template:-

See also

References

Template:Reflist