bperrybap:
Michael deviated from the unix time functions by changing some of the paramters from being zero
based to being one based.
His tmElements_t wDay and Month are 1 based wherease the struct tm tm_wday and tm_mon
are zero based.
The way I see it, it is evil for a programming language (or standard library) to insist on zero-based month numbering. If you have the kind of strictly compartmentalized mind necessary never to get confused between that and the month-numbering system used by non-programmers, then good for you. But, for everyone else, it's a trap.
Consider the change to 1-based month numbering to be a "bug fix" for a decades-old bug.
(BTW, in some languages such as Chinese, the month names are the numbers.)