L'onglet Jours fériés du Calendrier XT3 a été porté sous XT4.
Les jours fériés de Bulgarie vont être listés, maintenant que la détermination du jour de la Pâques orthodoxe a été résolue :
- La plupart des algorithmes trouvés sur Internet calculent en fait la date de la Pâques catholique selon le calendrier Julien : Wiki ou autres.
- La véritable méthode de calcul est disponible ici mais je n'ai pas eu le courage de la convertir en algorithme.
- Il a donc été envisagé de stocker une table avec les dates récupérées ici.
- Par la suite, un algorithme donnant le nombre de jours entre le 21 mars et la date de Pâques orthodoxe a été implémenté, ses résultats étaient corrects.
- Finalement, une dernière recherche a permis de trouver LA formule. La date résultante étant dans le calendrier Julien, un rajout de 13 jours (entre 1900 et 2099) et 14 jours (pour 2100, année maximale du Calendrier XT4) permet de passer au calendrier Grégorien et donne des dates qui correspondent aux tables trouvées :
Code : Tout sélectionner
//------------------------------------------------------------------------------ // XSD_GetOrientalEaster : renvoie le jour de Pâques orthodoxe //------------------------------------------------------------------------------ function XSD_GetOrientalEaster(Year: Integer): TDate; var G, I, J, L, Month, Day: Integer; begin // Calcul de la date en calendrier Julien G := Year mod 19; I := ((19 * G) + 15) mod 30; J := (Year + (Year div 4) + I) mod 7; L := I - J; Month := 3 + ((L + 40) div 44); Day := L + 28 - (31 * (Month div 4)); Result := EncodeDate(Year, Month, Day); // Passage au calendrier Grégorien if Year < 2100 then Result := Result + 13 else Result := Result + 14; end;