Ordinal date

An ordinal date is a calendar date typically consisting of a year and a day of the year ranging between 1 and 366 (starting on January 1), though year may sometimes be omitted. The two numbers can be formatted as YYYY-DDD to comply with the ISO 8601 ordinal date format.

Today's date (UTC) expressed according to ISO 8601 []
Date2021-02-07
Ordinal date2021-038

Calculation

Computation of the ordinal date within a year is part of calculating the ordinal date 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.

For these purposes, it is convenient to count January and February as month 13 and 14 of the previous year, for two reasons: the shortness of February and its variable length. In that case, the date counted from 1 March is given by

which can also be written

or

with m the month number and d the date. is the floor function.

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.

"Doomsday" properties:

For and we get

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

For and we get

and with m and d interchanged

giving a difference of 119 (17 weeks) for n = 2 (difference between 5/9 and 9/5), and also for n = 3 (difference between 7/11 and 11/7).

The ordinal date from 1 January is:

  • for January: d
  • for February: d + 31
  • for the other months: the ordinal date from 1 March plus 59, or 60 in a leap year

or equivalently, the ordinal date from 1 March of the previous year (for which the formula above can be used) minus 306.

Modulo 7

Again counting January and February as month 13 and 14 of the previous year, the date counted from 1 March is modulo 7 equal to

with m the month number and d the date.

Calculation can be done starting with January 1 mathematically without if statements if we take advantage of min and max algebraic logic
MAX is
MIN is

provided the month(m) day(d) and year(y)
//if Jan is a full month
//if Feb is a full month
//if Mar is a full month
//if Apr is a full month
//if May is a full month
//if June is a full month
//if July is a full month
//if Aug is a full month
//if Sept is a full month
//if Oct is a full month
//if Nov is a full month
//days of current month
//leap year logic
//only count a leap year if date is >=3rd month //leap year logic

example of Aug 24th 2016 is

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 03159901201511812122432733043343
Leap years 03160911211521822132442743053352
Algorithm

For example, the ordinal date of April 15 is 90 + 15 = 105 in a common year, and 91 + 15 = 106 in a leap year.

Month–day

The number of the month and date is given by


the term can also be replaced by with the ordinal date.

  • Day 100 of a common year:
April 10.
  • Day 200 of a common year:
July 19.
  • Day 300 of a leap year:
November -5 = October 26 (31 - 5).

See also

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.