Pregunta

Me encontré con el XMLGregorianCalendar Clase hace un tiempo y me impresionó la forma en que hizo que Gregoriancalendar se viera ligero. ;)

Recientemente, noté un método BitInteger getEon() que me desconcierta.

Del Javadoc para XMLGregoriancalendar

getyear () es un valor entre-(10^9-1) a (10^9) -1 o DataTyPeconstants.field_undefined. Geteon () es un valor de año alto en miles de millones de años.

Se me ocurre que a medida que cambia significativamente la duración del día en la Tierra durante los millones de años y allí durante el número de días en un año ha cambiado. El calendario gregoriano no tendría sentido hace mil millones de años o mil millones de años. Entonces Geteon () solo se puede configurar con sensatez a 0 o izquierda indefinida que tiene el mismo resultado.

Mi pregunta: ¿me estoy perdiendo algo? ¿Hay un uso sensato para el getEon() ¿método?

¿Fue útil?

Solución

Bueno, según http://www.merlyn.demon.co.uk/critdate.htm El tiempo UNIX con 64 bits entero finalizará alrededor del año 3E11. Dado que Java usa milisegundos en lugar de segundos, el tiempo de Java (64 bits) terminará alrededor de 3E8. Entonces esto proporciona cierta expansión más allá de los límites del JVM.

En una nota más práctica, cuando usa esta escala de tiempo, está hablando de eventos geológicos, evolutivos o cosmológicos, por lo que el resto de los datos en una fecha (año, día, día ...) no tiene sentido. Es mejor si usa un largo con el año (o incluso un int con el eon) y se olvida del resto.

Parece que alguien estaba realmente aburrido (y aburrido).


EDITAR: Por supuesto, siempre hay algunos problemas locos que pueden usarlo, pero no problemas del mundo real (como en: "Si tenemos un Hanoi Towers con 64 discos y mover un disco por segundo, cuándo terminaríamos de intercambiar las torres" ).

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top