Esto siempre es un rompecabezas para mí, y me doy cuenta de que no es estrictamente un problema en la programación o el desarrollo de software, pero parece ser un problema común razonable en nuestro campo.
Por ejemplo, si tuviera que establecer una fecha y hora de vencimiento como 2011-04-08 00:00:00, y dado que mi hora local actual es las 10:45 del día 8, ¿ya he expirado? ¿O todavía me queda medio día más o menos?
¿Existe un estándar universal para el final del día al que "pertenece" la medianoche?
¿O debería tomar una hoja del ejército británico y decir que el día termina a las 23:59:59 y comienza a las 00:00:01 y que no hay medianoche?
language-agnostic
time
HorusKol
fuente
fuente
24:00:00
se usa para describir la medianoche al final del día.Respuestas:
Creo que en la programación (Oracle y PHP, no estoy seguro sobre otros idiomas), la medianoche es el comienzo de un día. Por ejemplo, si usted trunc (sysdate) obtendrá 2011-04-08 00:00:00, que es nuestro pasado.
entonces, cuando el reloj cambió de 23:59:59 a 00:00:00, la fecha realmente cambió de 2011-04-08 a 2011-04-09
fuente
Una adición a la respuesta de @Phelios, si tiene un horario como 00:00:00, esto no es necesariamente exactamente la medianoche. Más bien, es un conjunto infinitamente grande de puntos en el tiempo, que tienen una distancia máxima de <1 segundo entre sí. Por ejemplo, todas las 00: 00: 00.345, 00: 00: 00.567 y 00: 00: 00.842 se encuentran claramente en el lado del nuevo día de la medianoche, pero se acortarán a "00:00:00" para fines de visualización. Del mismo modo, 23: 59: 59: 899 se encuentra en el lado antiguo de la medianoche. Por lo tanto, la medianoche en sí es un lapso de tiempo infinitamente corto entre los días que nunca alcanzarás en la práctica.
fuente
Este es un problema similar al cálculo de diferencias entre ángulos usando geometría circular, donde, por ejemplo, 0 grados y 360 grados (y 720 grados, etc.) son todos iguales. Entonces, ¿cuál es la diferencia entre 350 grados y 10 grados?
Respuesta: depende de la forma en que desee medirlo: puede ser de 20 grados o 340 grados. Pero hacer el cálculo de las diferencias angulares es bastante complicado. Los cálculos de diferencia horaria son igualmente desordenados a menos que los convierta a una forma interna que haga que la suma y la resta simples funcionen de manera convencional. O usa una biblioteca de clase moderna que mágicamente lo oculta todo de usted (y por lo tanto nunca le enseña a nadie sobre los detalles reales).
fuente