History of Zero-based Months?

August 24th, 2022
history, tech
JavaScript is a language of many silly things, and one of them is:

> new Date()
Wed Aug 24 2022 ...
> new Date().getFullYear()
2022
> new Date().getMonth()
7
> new Date().getDate()
24

It represents 2022-08-24 as (2022, 7, 24). One-based indexing for the year and day, but zero-based indexing for the month.

In this case, however, the problem was copied from Java:

getMonth: The value returned is between 0 and 11, with the value 0 representing January.

getDate: The value returned is between 1 and 31 representing the day of the month.

I'd love to blame Java, but they seem to have copied the problem from C:

localtime(3):
tm_mday: The day of the month, in the range 1 to 31.
tm_mon:  The number of months since January, in the range 0 to 11.

Looking at the Unix History repo, the first mention of "month (0-11)" is in 1973's Research Unix V4:

The value is a pointer
to an array whose components are
.s3
.lp +5 5
0      seconds
.lp +5 5
1      minutes
.lp +5 5
2      hours
.lp +5 5
3      day of the month (1-31)
.lp +5 5
4      month (0-11)
.lp +5 5
5      year \*- 1900
.lp +5 5
6      day of the week (Sunday = 0)
.lp +5 5

While this may have been an original decision by Dennis Ritchie, it's also possible it was copied from an even earlier system. Does anyone know?

Comment via: facebook, lesswrong, hacker news, substack

Recent posts on blogs I like:

Linkpost for March

Effective Altruism

via Thing of Things March 2, 2026

The Newest Technology in Frozen

There are lots of different things in Frozen that are new-ish, but my dad and I were wondering: what is the actual newest thing in Frozen? This led me to watch Frozen a lot while taking notes. Some of the things I found included: Elastic hair-ties A safety …

via Lily Wise's Blog Posts March 1, 2026

2025-26 New Year review

This is an annual post reviewing the last year and setting intentions for next year. I look over different life areas (work, health, parenting, effectiveness, etc) and analyze my life tracking data. Highlights include a minimal group house, the usefulness…

via Victoria Krakovna January 19, 2026

more     (via openring)