Tak, Rzymianie mieli również problemy z zerowym poziomem.
To
tylko
A [nieintuicyjne] Konsekwencją matematyki (jest ważnym elementem programowania, zwłaszcza wcześnie programowanie) definiowania zera jako pierwszy (problematycznego terminu, że jeden) prawdziwe,
pozytywny
* liczba naturalna, a ponieważ tablica jest indeksowana rzeczywistymi, naturalnymi liczbami, "pierwszy" element ma indeks 0.
Miesiące są tak naprawdę nazwanymi wartościami w tablicy, gdzie dni i lata są wartościami numerowanymi - być może lepiej byłoby myśleć dni/lat jak w tablicach, które wyglądają jak {"1", "2", "3", ...} same.
Co do dlaczego jest to tak powszechne (oprócz tego, że matematycznie poprawne) oraz wszystkie języki, wymienione pochodzą od wspólnego pochodzenia jednej rzeczy ...
Edit:
Patrząc dalej w nią, to łącze wikipedia wyszczególnia kilka dobrych i interesujących przyczyn zerowej indeksacji (co nie mówi bezpośrednio o tym, dlaczego miesiące są indeksowane od zera, ale myślę, że to już jest objęte), a ten link SO już odpowiedział na to pytanie.
Wygląda na to, że dominującą opinią jest albo "historyczny wypadek", albo "ponieważ miesiące nie są liczbami, więc nie można ich porównać z przechowywaniem dnia/roku" w zależności od tego, kogo pytasz.
* Przykro mi, przepraszam, fizyka! = Matematyka wraca, żeby mnie ugryźć. Wyłóż teraz moje ręce.
Tablice, zaczynają się od 0, a ludzie odnoszą się do dni według numerów? – glasnt
@ PomidorSandwich: ludzie często powołują się na _months_ według liczb i numerują je począwszy od _1_. –
API Programiści nie są bogami przy okazji; czasem błędy wchodzą w implementacje; licz sie z tym. Nie żeby tak było (nawet nie mówisz w jakim języku), ale nie oczekuj, że wszystko będzie idealne. Podziwiam jednak chęć poznania przyczyny. –