Day of the Year Table
| Month | Last day (non-leap) | Last day (leap) |
|---|---|---|
| January | 31 | 31 |
| February | 59 | 60 |
| March | 90 | 91 |
| April | 120 | 121 |
| May | 151 | 152 |
| June | 181 | 182 |
| July | 212 | 213 |
| August | 243 | 244 |
| September | 273 | 274 |
| October | 304 | 305 |
| November | 334 | 335 |
| December | 365 | 366 |
Strip away the month names and a year is just 365 (or 366) numbered days - and a surprising number of professions prefer it that way. The table lists each month's last day-of-year in both ordinary and leap years, so any date converts to its day number with one subtraction.
Bottom line: the arithmetic is the whole tool. June 15 sits in the month ending at day 181, so it is day 181 - 15 = 166 in an ordinary year - and everything after February shifts by one when the leap day arrives. The two column layout exists precisely because Feb 29 is the only thing that ever moves the numbering.
The honest part: nobody says 'day 278' in conversation, and the count exists for machines and logs, not small talk. Programmers use it because ordinal dates sort and diff cleanly, astronomers because their tables run on continuous counts, and the military because '278' survives a bad radio channel better than 'October the fifth' ever will.
How to use
- Find the month in the table and take its last-day number for the right column - ordinary or leap year.
- Subtract the day-of-month from that number to place any date: April 3 = 120 - 27 = day 93 in a non-leap year.
- Going the other way, add: day 200 lands 200 - 181 = 19 days into June in an ordinary year.
Frequently asked questions
What day of the year is it today?
Take today's month from the table, add the day of the month to the previous month's last-day number - or subtract the date from this month's own last day as the table note shows. In an ordinary year the year runs to day 365 on December 31; after a leap February every following date sits one number higher, ending at 366.
Which years are leap years?
Years divisible by 4 - except century years, which must be divisible by 400. So 2028 and 2032 are leap years, 2000 was one, and 1900 was not despite the 'divisible by 4' rule, which is also why 2100 will not be. The correction exists because the solar year runs about 365.2422 days; the Gregorian calendar's 97 leap days per 400 years lands the average almost exactly on it.
Why do programmers count day-of-year?
Because ordinal dates (2026-278) sort correctly as text, subtract without month-name arithmetic, and never collide across formats - the same reasons ISO 8601 orders the fields biggest-first. Log files, backup rotation and astronomy pipelines all prefer a count that increments by one, every day, with a single well-defined discontinuity per leap year instead of twelve different month lengths.
What is the military date-time group doing differently?
The military abbreviates the same instinct: '278' can appear as the Julian-date field in a date-time group because a three-digit day number is short, unambiguous over a bad radio channel, and needs no month name to survive transcription. Aviation's DDMMMYY (05OCT26) solves the same problem one way, ordinal day numbers another.
How do I convert a day number back to a date?
Find the last month whose last-day number is at or below your target, then subtract: day 200 in an ordinary year is past May (151) and into June, so 200 - 151 = June 19. In a leap year, remember every date from March onward carries the +1 - day 200 lands a day earlier in the calendar, June 18. The table's two columns exist to keep exactly that branch honest.