Праздники - являются там реализацией Java?

Я хотел бы знать, существует ли файл банки там, который мог бы сделать следующее:

DateMidnight dateInQuestion = new DateMidnight(12,12,2000);
DateChecker.isNationalHoliday(dateInQuestion, Locale.ITALY);

Если нет, почему? Конечно, существует много правильно основанных правил для праздников в 99% времен.

Прямо сейчас мы - mainting таблица в нашей базе данных, со странами + у нас есть некоторая реализация когда дело доходит до праздников, которые не находятся в ту же дату каждый год. Мы должны добавить к нашей реализации для каждой новой страны, мы получаем новых клиентов.

Мы могли сделать это более легкий путь?

(Если нет такой вещи в сфере Java, действительно ли я могу портировать ее с некоторого другого языка?)

61
задан Martin 2 August 2010 в 14:36
поделиться

5 ответов

Насколько мне известно, в Java не существует ничего надежного. Это также имеет смысл, ведь именно такая информация чрезвычайно чувствительна к изменениям. Жесткое кодирование может привести к поломке вашего кода при каждом обновлении Java, что может привести к большому количеству проблем с обслуживанием и совместимостью. В настоящее время, в лучшем случае, часовые пояса жестко запрограммированы / поддерживаются в Java SE, и даже сами по себе, что уже привело к множеству ошибок .

Лучше использовать для этого общедоступный веб-сервис. Например. http://www.bank-holidays.com

Этот сайт информирует вас обо всех днях, когда банки (а также фондовые биржи и школьные каникулы в ряде стран) закрыты из-за религиозных или общественных мероприятий. . Также перечислены основные события (выборы, объявленные забастовки, торговые ярмарки, фестивали, спортивные мероприятия ...).

Наша БЕСПЛАТНАЯ УСЛУГА позволяет просматривать текущий календарный год (только просмотр). За 2 евро / страну / год наша ПЛАТНАЯ УСЛУГА (щелкните значок кредитной карты) дает вам доступ к календарным годам 2000-2070.

И напишите об этом Java-оболочку. Или поищите существующие Java API, которые, в свою очередь, уже поддерживаются веб-сервисом.

13
ответ дан 24 November 2019 в 17:25
поделиться

Думаю, тебе придется работать самому.

Национальные праздники определяются, в общем, народами. Они могут меняться и, по определению, не универсальны и, следовательно, не могут быть зафиксированы каким-либо алгоритмом.

Единственный способ отслеживать их - поддерживать их для каждой страны.

Возможно, кто-то на самом деле это уже делает (может быть, своего рода веб-сервис), но, честно говоря, я в этом сомневаюсь.

0
ответ дан 24 November 2019 в 17:25
поделиться

Мои поиски привели к двум результатам (в дополнение к тому, что я перечислил в комментариях). Первый, Holiday Client API, похоже, является мертвым проектом. Второй, Jollyday, выглядит как очень грубая, но активная незавершенная работа.

Что касается почему нет хорошей библиотеки, я согласен с Томом. Я подозреваю, что ваша предпосылка "Наверняка в 99% случаев существует множество правильно основанных правил для праздников" неверна.

1
ответ дан 24 November 2019 в 17:25
поделиться

Пока я никого не видел. Но то, что я мог бы предложить вам, - это попытаться установить связь с API календаря Google, который оттуда пытается получить календарь праздников через ленту календаря или как вы это называете. Оттуда обработайте данные и, если хотите, сохраните их в своей базе данных. В конце концов, если у вас есть активное подключение к Интернету, вы можете использовать Java для подключения к соответствующим данным. Я не думаю, что даже для других языков доступны такие прямые методы.

0
ответ дан 24 November 2019 в 17:25
поделиться

Я написал Jollyday API, и мне интересно узнать, что в нем такого «грубого». Как я могу это улучшить? Было бы здорово получить известие от вас. Если хотите, отправьте мне электронное письмо на адрес (скрыто).

Кстати. Jollyday используется именно так, как этого требует спрашивающий. Пожалуйста, ищите себя.

Ура, Свен

P.S .: Я нашел бесплатный веб-сервис от Ульриха Хильгера, который предоставляет подробную информацию о праздниках по всему миру. См. Api.daybase.eu

15
ответ дан 24 November 2019 в 17:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: