Ha már feléledt a topik, hozzá is tennék, bár az egész stílus méltatlan ami itt folyt.
A tájékozott szoftverfejlesztő nem agyatlanul anyázik, hanem megtanulta, és megértette, miért jó a hónapokat 0-tól számozni, míg a napokat 1-től. A matematikus pedig szép kategóriaelméleti indoklást is ad. Ennek hiányában én egy egyszerűsített magyarázattal szolgálok.
- A nap egy numerikus adat. Vagy 28,29,30,31 lehet belőle egy hónapban[1]. Mint numerikus adat, ezen belül is egész szám, a gép erre kitalált adattípusát használjuk. Mivel 28..31 között változhat, ezért logikus is, hogy egy tetszőleges egész típussal ivatkozzunk rá. 1-től kezdeni ezt a számozást pedig intuitív.
- A hónap ezzel szemben nemcsak numerikus adat, de ennél specifikusabb: egy lista (enumeráció, tömb, stb.) egy tagja. Mindig[1] tizenkettő van belőle. Ezáltal a gép szintén ilyesmire kitalált konvencióját használjuk, az eltolást, offsetet (persicsb már említette sokat sejtetően, de nem vagyok benne biztos, hogy mindenkinek tiszta volt ebből). Január ezek szerint 0 eltolással számolható, december pedig 11-gyel.
A legjobb módszer arra, ha valami ismeretlennel találkozunk az, hogy megnézzük, mi az, miért van úgy, miért nem máshogy van, mi volt a mögöttes gondolat, stb. Így csak okosabban jöhetünk ki a játékból. A buta fikázás ezzel szemben csak frusztrációt fog okozni, amikor magunknak is beismerjük hogy mi voltunk a hülyék. Jobb tehát elkerülni :-)
[1] Nagyon ritkán (többszázévente, a Gergely-naptár óta nem is tudom volt-e) előfordul, hogy még többet kell korrigálni, de erre most inkább ne készüljünk fel.