Кто-нибудь может подумать о практическом использовании XMLGregorianCalendar.getEon ()? - PullRequest
6 голосов
/ 17 июня 2011

Некоторое время назад я наткнулся на класс XMLGregorianCalendar и был впечатлен тем, как он заставил GregorianCalendar выглядеть легковесным.;)

Недавно я заметил метод BitInteger getEon(), который сбивает меня с толку.

Из Javadoc для XMLGregorianCalendar

getYear () - это значение между - (10 ^ 9-1) - (10 ^ 9) -1 или DatatypeConstants.FIELD_UNDEFINED.getEon () - это старшее значение года в миллиардах лет.

Мне приходит в голову, что по мере того, как продолжительность дня на Земле значительно меняется в течение миллионов лет, то есть количество дней вгод изменился.Григорианский календарь не имел бы смысла миллиард лет назад или миллиард лет спустя.Таким образом, getEon () может быть разумно установлен на 0 или оставлен неопределенным, что имеет почти такой же результат.

Мой вопрос: я что-то упустил?Есть ли смысл в использовании метода getEon()?

1 Ответ

4 голосов
/ 17 июня 2011

Ну, в соответствии с http://www.merlyn.demon.co.uk/critdate.htm время Unix, использующее 64-битное целое число, заканчивается около 3E11 года. Учитывая, что Java использует миллисекунды вместо секунд, время Java (64 бита) заканчивается около 3E8. Так что это обеспечивает некоторое расширение за пределы JVM.

В более практической заметке, когда вы используете эту шкалу времени, вы говорите о геологических, эволюционных или космологических событиях, поэтому остальные данные в дате (год, месяц, день ...) не имеют смысла. Лучше, если вы используете long с годом (или даже int с eon) и забудете об остальном.

Похоже, кому-то было очень, очень скучно (и скучно).


Редактировать: Конечно, всегда есть некоторые сумасшедшие проблемы, которые могут его использовать, но не проблемы реального мира (как в: «если у нас есть Ханойские башни с 64 дисками и переместить диск в секунду, когда мы закончим обмениваться» башни ").

...