Sí, los romanos también tuvieron problemas con cero.
Esto es
simplemente
un [no intuitivo] consecuencia de las matemáticas (siendo un fuerte componente de programación, en especial de programación temprana) que define cero como el primero (término problemático que uno) real,
positivo
* número natural, y dado que una matriz está indexada con números reales y naturales, el "primer" elemento está en el índice 0.
Los meses son valores realmente nombrados en una matriz, donde días y años son valores numerados, tal vez sería más útil pensar de días/años como en arreglos que se parecen a {"1", "2", "3", ...} ellos mismos.
cuanto a por qué esto es tan común (aparte de ser matemáticamente correcto) así todos los idiomas que enumeró descienden de un origen común para una cosa ...
Editar:
Mirando más en él, Este enlace wikipedia detalla varias razones buenas e interesantes para la indexación cero (que no habla directamente de por qué los meses tienen índice cero pero creo que eso ya está cubierto), y este enlace SO ha respondido la pregunta anteriormente.
Parece que la opinión prevaleciente es "accidente histórico" o "porque los meses no son números, por lo que no se pueden comparar con el almacenamiento de día/año" dependiendo de a quién se lo pregunte.
* Lo siento, lo siento, la física! = Las matemáticas vuelven para morderme allí. Fuera para planchar mis manos ahora.
Las matrices, comienzan en 0, y las personas se refieren a los días por números? – glasnt
@TomatoSandwich: con mucha frecuencia las personas se refieren a _months_ por números, y los numeran a partir de _1_. –
API Los programadores no son dioses por cierto; a veces los errores entran en las implementaciones; simplemente trata con ello. No es que sea exactamente un caso (ni siquiera dices qué idioma), pero no esperes que todo sea perfecto. Aunque admiro querer saber la razón. –