Page 1 sur 1

Jeu 31/01/2013 - Actualités

Posté : jeu. 31 janv. 2013 11:11
par Xavier
Jours fériés


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;
    

Jeu 31/01/2013 - Actualités

Posté : jeu. 31 janv. 2013 17:08
par Xavier
Jours fériés


Un nouveau système de gestion des jours fériés a été implémenté.
La totalité des constantes (dates et libellés des jours fériés par pays) et des services ont été extraits des unités du Noyau et des Services et réécrits dans l'Agenda qui s'occupe donc de tout.

Une option permet désormais de paramétrer le pays de l'Agenda, pour le moment parmi France et Bulgarie. Cette option impacte les pages Calendrier, Jours fériés et Calculs.

La page Jours fériés est capable de détecter les jours doublement fériés et les indique :
1.png
2.png
Rajouter les jours fériés de nouveaux pays sera maintenant facile.

Re: Jeu 31/01/2013 - Actualités

Posté : ven. 1 févr. 2013 00:31
par Denis
tu te donnes beaucoup de mal pour gérer les bulgares...T'as envie/tu envisages de t'expatrier bientot??? LOL