Holidays – existe-t-il une implémentation Java?

J’aimerais savoir s’il existe un fichier jar qui pourrait faire ce qui suit:

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

S’il n’y en a pas, pourquoi? Il y a sûrement beaucoup de règles bien établies pour les vacances dans 99% des cas.

En ce moment, nous conservons une table dans notre firebase database, avec les pays + nous avons une implémentation quand il s’agit de vacances qui ne sont pas à la même date chaque année. Nous devons append à notre implémentation pour chaque nouveau pays où nous recevons de nouveaux clients.

Pourrions-nous faire cela plus facilement?

(S’il n’y a pas une telle chose dans la sphère java, puis-je la transférer depuis une autre langue?)

Rien de solide n’existe en Java pour autant que je sache. Cela a aussi du sens, ce type d’information est extrêmement sensible aux changements. En codant en dur, votre code risquerait de casser chaque mise à jour Java, ce qui pourrait entraîner de nombreux problèmes de maintenance et de compatibilité. Actuellement, les fuseaux horaires sont codés en dur / maintenus dans Java SE et même seuls, cela a déjà conduit à de nombreux bogues .

Utilisez plutôt un service Web public pour cela. Par exemple, http://www.bank-holidays.com

Ce site vous informe de tous les jours où les banques (ainsi que les vacances boursières et scolaires dans un certain nombre de pays) sont fermées en raison d’événements religieux ou publics. Les événements majeurs (élections, grèves annoncées, salons professionnels, festivals, manifestations sportives…) sont également répertoriés.

Notre SERVICE GRATUIT vous permet de visualiser l’année civile en cours (affichage uniquement). Pour 2 euros / pays / an, notre SERVICE DE PAYE (cliquez sur l’icône de la carte de crédit) vous donne access aux années civiles 2000-2070.

Et écrivez un wrapper Java autour de cela. Ou recherchez des API Java existantes, elles-mêmes déjà supscopes par un service Web.

J’ai écrit l’API Jollyday et je suis intéressé à savoir ce qu’il y a de plus rude à ce sujet. Comment puis-je l’améliorer? Je serais ravi d’avoir de vos nouvelles. Envoyez-moi un email à [email protected] si vous le souhaitez.

Au fait. Jollyday est utilisé comme le demande le questionneur. S’il vous plaît chercher vous-même.

Cheers, Sven

PS: J’ai trouvé un webservice gratuit d’Ulrich Hilger qui fournit des informations détaillées sur les vacances dans le monde entier. Regardez api.daybase.eu

J’ai également écrit un wrapper java autour de la gemme de vacances de Ruby (. Il est disponible sur Github: https://github.com/gdepourtales/holidays . Il fonctionne comme Jollyday ( http://sourceforge.net/projects/jollyday/ ).

J’ai trouvé cela intéressant:

Fournisseur de service RESTful – API de vacances

Pour les projets de noeud – node-holidayapi

Je sais que ce n’est pas pertinent pour la question posée pour l’implémentation Java. Mais si votre projet est RESTful (comme la plupart des projets de nos jours), cela vous donnerait un sharepoint départ. 😉

Ma recherche a donné deux résultats (en plus de ceux que j’ai énumérés dans les commentaires). Le premier, l’ API de Holiday Client , semble être un projet mort. Le second, Jollyday , ressemble à un travail en cours très difficile mais actif.

Quant à savoir pourquoi il n’y a pas de bonne bibliothèque, je suis avec Tom. Je soupçonne que votre prémisse “Il y a sûrement beaucoup de règles bien établies pour les vacances dans 99% des cas” est incorrecte.

Je pense que vous devrez faire le travail vous-même.

Les fêtes nationales sont déterminées par les nations. Ils peuvent changer et, par définition, ne sont pas universels et ne peuvent donc pas être capturés par un algorithme.

La seule façon de les suivre est de les maintenir pour chaque pays.

Peut-être que quelqu’un le fait déjà (peut-être un genre de service Web), mais j’en doute, pour être honnête.

Jusqu’à présent, je n’en ai vu aucun. Mais ce que je pourrais suggérer à vous, c’est d’essayer d’établir un lien avec Google Calendar Api, qui à partir de là essaie d’obtenir le calendrier des vacances dans le stream du calendrier ou peu importe comment vous l’appelez. À partir de là, traitez les données et, si vous le souhaitez, enregistrez-les dans votre firebase database. Après tout, tant que vous avez une connexion Internet active, vous pouvez utiliser java pour vous connecter aux données pertinentes. Même pour d’autres langues, je ne pense pas que de telles méthodes directes soient disponibles.