Tach!
zählt nur der Monat ab 0, wie bei Javascript. (Javascript ist hier nicht das Vorbild, sondern meines Wissens eine Funktion in einer C-Bibliothek, die den Monat so haben möchte, und anscheinend für beide die Grundlage bildet.)
Ein fataler Fehler. Und ein Musterbeispiel für Scheuklappenblick in der Informatik. „Ich bastel da da mal eben was“ – ohne die Folgen zu bedenken. Welche in dem Fall ziemlich katastrophal sind – und irreparabel. Genearationen von Programmierern müssen sich mit der Fehlentscheidung von damls herumquälen.
Wer sagt denn, dass das eine unbedachte Fehlentscheidung war? Diese 0 hat auch Vorteile, beispielsweise, dass ich nicht mit einem Offset hantieren muss, um den Monatsnamen in einem 0-basierenden Array abzufragen. Hast du dein Urteil unter Berücksichtigung aller Umstände gebildet? War es vielleicht auch eine katastrophale Fehlentscheidung, 0-basierte Arrays zu erfinden, mit denen man letztlich einfacher rechnen kann, als den 1-basierenden Offset berücksichtigen zu müssen.
Unangenehmer finde ich hingegen, dass es unterschiedliche Auffassungen gibt, mit welchem Wochtag die Woche anfängt. Das lässt sich nicht so einfach mit einem +/-1 Offset angleichen.
Und wer sagt, dass es irreparabel ist? Schreib dir eine Wrapper-Funktion, die eine dir genehmere Schnittstelle bietet.
dedlfix.