Подтвердить что ты не робот

Праздники - есть ли реализация Java?

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

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

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

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

Можем ли мы сделать это более простым способом?

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

4b9b3361

Ответ 1

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

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

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

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

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

Ответ 2

Я написал Jollyday API, и мне интересно узнать, что это такое "грубо". Как я могу улучшить его? Было бы здорово услышать от вас. Пришлите мне письмо по адресу [email protected], если хотите.

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

Приветствия, Свен

P.S.: Я нашел бесплатный веб-сервис от Ulrich Hilger, который предоставляет подробную информацию о всемирном отдыхе. Посмотрите api.daybase.eu

Ответ 4

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

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

Ответ 5

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

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

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

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

Ответ 6

До сих пор я никого не видел. Но то, что я мог бы предложить для u, - попытаться связать с Google Calendar api, который оттуда пытается получить календарь праздника через календарный канал или что-то другое, назовите его. Оттуда обработайте данные, а если хотите, сохраните их в своей базе данных. В конце концов, если у вас есть активное интернет-соединение, вы можете использовать java для подключения к соответствующим данным Даже для других языков я не думаю, что такие прямые методы доступны.

Ответ 7

Я нашел это интересным:

Поставщик услуг RESTful - API отпуска

Для проектов Node - node-holidayapi

Я знаю, что это не относится к вопросу, заданному для реализации Java. Но если ваш проект RESTful (как и большинство проектов в настоящее время), это даст вам место для начала.;)