¿Por qué el día 0 es 0 de enero?

¿Por qué el día 0 es 0 de enero?

Si formateo una columna mmm dd hh:mm:ssy establezco el valor de una celda en 0, se muestra como Jan 00 00:00:00.

Esto parece contradecir la Parte 1, Sección L.2.16.9.1 delEstándar ECMA-376, que supuestamente sigue Excel.

De la especificación:

Una fecha que puede interpretarse como un valor numérico es un valor de serie. Se compone de un componente de fecha entera con signo y un componente de tiempo fraccionario sin signo. En el futuro, el componente de fecha de un valor de serie aumenta en 1 cada día. Un valor de serie representa una fecha y hora UTC y, como tal, no tiene información de zona horaria. Se pueden utilizar tres bases diferentes para convertir fechas en valores seriales:

  • En el sistema base de fecha de 1900, el límite inferior es el 1 de enero de -9999 00:00:00, que tiene un valor de serie -4346018. El límite superior es el 31 de diciembre de 9999, 23:59:59, que tiene un valor de serie 2.958.465,9999884. La fecha base para este sistema base de fechas es el 30 de diciembre de 1899, que tiene un valor de serie de 0.
  • En el sistema de base de fechas de compatibilidad con versiones anteriores de 1900, el límite inferior es el 1 de enero de 1900, 00:00:00, que tiene un valor de serie 1. El límite superior es el 31 de diciembre de 9999, 23:59:59, que tiene un valor de serie 2.958.465,9999884. La fecha base para este sistema base de fechas es el 31 de diciembre de 1899, que tiene un valor de serie de 0.
  • En el sistema de base de fechas de compatibilidad con versiones anteriores de 1904, el límite inferior es el 1 de enero de 1904, 00:00:00, que tiene un valor de serie 0. El límite superior es el 31 de diciembre de 9999, 23:59:59, que tiene un valor de serie 2.957.003,9999884. La fecha base para este sistema base de fechas es el 1 de enero de 1904, que tiene un valor de serie de 0.

De esto deduzco que 0debería redactarse como 30 de diciembre de 1899; 31 de diciembre de 1899; o 1 de enero de 1904; dependiendo de cuál de los sistemas anteriores se elija (Excel ofrece cierta personalización aquí). ¿Me estoy perdiendo algo aquí o alguien tiene una explicación de por qué se desvía de las especificaciones?

Estoy en la versión 16.61.1, si eso importa.

Respuesta1

Esto parece contradecir la Parte 1, Sección L.2.16.9.1 del estándar ECMA-376.

En el sistema de base de fechas de compatibilidad con versiones anteriores de 1900, el límite inferior es el 1 de enero de 1900, 00:00:00, que tiene un valor de serie 1.

No, no contradice esta parte. El límite inferior es el valor de serie 1; El valor de serie 0 está fuera del límite, no debe usarse y no se puede esperar un resultado correcto al usarlo.

Pude encontrar esta parte endocumentación de la función de fecha:

Excel interpreta el argumento del año de acuerdo con el sistema de fechas que utiliza su computadora. De forma predeterminada, Microsoft Excel para Windows utiliza el sistema de fechas 1900, lo que significa que la primera fecha es el 1 de enero de 1900.

información relacionada