Есть ли хорошие ресурсы для пользовательских хронологий Joda-Time? - PullRequest
4 голосов
/ 05 сентября 2011

Я работаю над игрой в стиле RPG и хочу разработать собственный календарь для игры с уникальными месяцами, днями недели, продолжительностью месяца и продолжительностью дня. Первоначально я планировал переопределить Календарь JDK и попытаться сделать это таким образом; Тем не менее, я столкнулся с Joda-Time, и это казалось более перспективным и мощным для этой цели. Однако у меня возникли проблемы с поиском собственной хронологии, и мне было интересно, есть ли хорошие ресурсы (которые я не могу найти), объясняющие, как создать хронологию.

Я пытался придумать перегруженную хронологию AssembledChronology, но, похоже, не могу заставить ее соответствовать моим потребностям. И идея того, что я хочу, - это 9-месячный календарь с 40 днями в месяц, 10 дней в неделю. Кроме того, существует окончательный «безмесячный» 10-й месяц в году, который длится всего 5 дней.

Любая помощь / совет приветствуется.

1 Ответ

3 голосов
/ 05 сентября 2011

Мой совет: не пытайтесь делать это с Joda Time.

Это может быть возможным - хотя "безмесячный" месяц звучит немного странно - и Joda Time, безусловно, построена на гибкости ... но вы можете сосредоточиться на всех делах AssembledChronology, DelegatedDateTimeField, DecoratedDateTimeField и т. Д., Скорее всего, у вас в голове. О, и тогда вам понадобится возможность часовых поясов.

Ваш календарь звучит довольно просто, если быть честным - достаточно простым, так что реализация простого API с нуля может оказаться проще, чем попытка детально понять реализацию Joda Time.

Не поймите меня неправильно: я люблю Joda Time с точки зрения использования его для обычных бизнес-приложений. Это намного лучше, чем Date и Calendar, когда вы начнете его использовать, действительно нет пути назад - но это сложно .

(С точки зрения контекста, я портирую Joda Time на .NET или, по крайней мере, на «движок». Это довольно хорошо задокументировано, но повсюду существуют большие иерархии наследования, и это просто способствует «просто» созданию новой календарной системы. Вполне может не потребоваться много кода в конце для того, кто уже знает подробности Joda Time, но это достаточно сложно, иначе я бы просто попытался избежать этого.)

Конечно, это действительно зависит от того, насколько богатый API вам нужен. Если вы действительно хотите использовать всю мощь Joda Time, то адаптация вашей календарной системы действительно будет проще, чем повторная реализация всего API самостоятельно. С другой стороны, если вы в основном только после того, как можете сказать: «Вот дата в моем собственном календаре», то есть более простые способы ее достижения. Что вам действительно нужно с точки зрения даты / времени в вашей игре?

...