Ja, die Römer hatten auch Probleme mit Null.
Dies ist nur eine [nicht intuitive] Konsequenz der Mathematik (die ein starker Bestandteil der Programmierung ist, insbesondere der frühen Programmierung), die Null als die erste (problematische Bezeichnung dieser) reelle, positive * natürliche Zahl definiert, und da ein Array mit reell indiziert ist , natürliche Zahlen Das "erste" Element befindet sich am Index 0.
Monate sind wirklich benannte Werte in einem Array, wobei Tage und Jahre nummerierte Werte sind. Es wäre vielleicht sinnvoller, sich Tage / Jahre als Arrays vorzustellen, die wie {"1", "2", "3" ,. .. } sich.
Warum dies so häufig vorkommt (abgesehen davon, dass es mathematisch korrekt ist)? Alle Sprachen, die Sie aufgelistet haben, stammen zum einen von einem gemeinsamen Ursprung ab ...
Bearbeiten:
Wenn Sie genauer hinschauen , enthält dieser Wikipedia- Link einige gute und interessante Gründe für die Nullindizierung (was nicht direkt darauf hinweist, warum Monate nullindiziert sind, aber ich denke, dass dies bereits behandelt wird), und dieser SO- Link hat die Frage bereits zuvor beantwortet.
Es sieht so aus, als ob die vorherrschende Meinung entweder "historischer Unfall" oder "weil Monate keine Zahlen sind und daher nicht mit der Lagerung von Tag / Jahr verglichen werden können" ist, je nachdem, wen Sie fragen.
* Sorry, sorry, Physik! = Mathe kommt zurück, um mich dort zu beißen. Jetzt meine Hände bügeln.