IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)



Comment calculer le nombre de jours entre deux dates ?
auteur : psl
Pour calculer la différence entre deux dates, on peut utiliser plusieurs méthodes :
En passant directement par les dates

         var
                 Date1, Date2 : TDateTime;
                 Diff : Extended;
                 Jour1, Mois1, Annee1 : Word;
                 Jour2, Mois2, Annee2 : Word;
         begin
                 Date1 := EncodeDate(Annee1, Mois1, Jour1);
                 Date2 := EncodeDate(Annee2, Mois2, Jour2);
                 Diff := Date2 - Date1;
         end;
        
En passant directement par une fonction

         var
                 Date1, Date2 : TDateTime;
                 Diff : Extended;
                 Jour1, Mois1, Annee1 : Word;
                 Jour2, Mois2, Annee2 : Word;
         begin
                 Date1 := EncodeDate(Annee1, Mois1, Jour1);
                 Date2 := EncodeDate(Annee2, Mois2, Jour2);
                 Diff := DaysBetween(Date2, Date1);
         end;
        
En passant par les jours Juliens

         var
                 Date1, Date2 : TDateTime;
                 Diff : Extended;
                 Jour1, Mois1, Annee1 : Word;
                 Jour2, Mois2, Annee2 : Word;
         begin
                 Date1 := EncodeDate(Annee1, Mois1, Jour1);
                 Date2 := EncodeDate(Annee2, Mois2, Jour2);
                 Diff := DateTimeToJulianDate(Date2)-DateTimeToJulianDate(Date1);
         end;
        
La variable Diff représente la différence entre les deux dates, mais dans le cas où le nombre de jours dans un intervalle il y a lieu d'ajouter 1 au résultat (problème de bornes).

Comment connaître les dates de passage à l'heure d'hiver et été ?
auteur : psl
Le passage à l'heure d'été et d'hiver est fixé par loi jusqu'en 2006. Le passage à l'heure d'été s'effectue le dernier dimanche du mois de mars et le passage à l'heure d'hiver le dernier dimanche du mois d'octobre.

Comment calculer le numéro de jour dans l'année d'une date ?
auteur : psl
Le rang du jour de l'année est obtenu par la fonction DayOfTheYear().

         uses
                 DateUtils;
         var
                 Date1 : TDateTime;
                 NumeroJ : Integer;
         begin
                 Date1 := Now; {Date système}
                 NumeroJ := DayOfTheYear(Date1);
         end;
        
lien : Comment calculer le numéro de semaine dans l'année d'une date ?

Comment calculer le numéro de semaine dans l'année d'une date ?
auteur : psl
Le numéro de la semaine dans l'année est obtenu par la fonction WeekOfTheYear().

         uses
                 DateUtils;
         var
                 Date1 : TDateTime;
                 NumSem : Word;
         begin
                 Date1 := EncodeDate(2002, 11, 1);
                 NumSem := WeekOfTheYear(Date1);
         end;
        
lien : Comment calculer le numéro de jour dans l'année d'une date ?

Comment calculer le jour de la semaine pour une date ?
auteur : psl
Le jour de la semaine est obtenu par la fonction DayOfTheWeek().

         uses
                 DateUtils;
         var
                 JourSem : Word;
                 Date1 : TDateTime;
         begin
                 Date1 := EncodeDate(2002, 11, 1);
                 JourSem := DayOfTheWeek(Date1);
         end;
        

Comment calculer la date de Pâques ?
auteur : psl
Le dimanche de Pâques correspond au premier dimanche suivant la première pleine lune du printemps.
La fonction ci-dessous calcule le jour de Pâques pour les dates comprises entre 1583 et 4099.

         function Paques(Annee : Integer) : TDateTime;
         var
                 Y,G,C,X,Z,D,E,N,P,J,M : Integer;
         begin
                 {Algorithme valable pour les dates comprises entre 1583 et 4099}
                 Y := Annee;
                 G := (Y mod 19) + 1;
                 C := Trunc((Y/100)) + 1;
                 X := Trunc(3 * C / 4) - 12;
                 Z := Trunc(((8 * C) + 5) / 25) - 5;
                 D := Trunc(((5 * Y) / 4) - X - 10);
                 E := ((11 * G)+ 20 + Z - X) mod 30;
                 if ((E = 25) and (G > 11)) or (E = 24) then
                         E := E + 1;
                 N := 44 - E;
                 if N < 21 then
                         N := N + 30;
                 P := N + 7 - ((D + N) mod 7);
                 if P > 31 then
                         J := P - 31
                 else
                         J := P;
                 if J = P then
                         M := 3
                 else
                         M := 4;
                 Result := EncodeDate(Annee, M, J);
         end;
        
lien : Comment définir les jours fériés en France ?

Comment définir les jours fériés en France ?
auteur : psl
Il est souvent nécessaire, lors des manipulations de dates, de savoir si un jour est férié ou non (calcul des jours ouvrables, génération de calendriers, etc...).
Tout cela est facile pour les jours fériés de date fixe (jour de l'an, Noël, etc...) mais il en va tout autrement pour les jours fériés mobiles (Pâques, Pentecôte, etc...) qui sont calculés à partir de la date de Pâques.
    Lundi de Pâques = Pâques + 1 jour
    Ascencion = Pâques + 39 jours
    Pentecôte = Pâques + 49 jours
    Lundi de Pentecôte = Pâques + 50 jours
lien : Comment calculer la date de Pâques ?

Comment convertir une date julienne en date grégorienne ?
auteur : psl
Pour convertir une date au format Julien vers le format Grégorien, il suffit de faire appel à la fonction JulianDateToDateTime().

         uses
                 DateUtils;
         var
                 JourJulien : Extended;
                 DateC : TDateTime;
         begin
                 DateC := JulianDateToDateTime(JourJulien);
         end;
        
Pour les utilisateurs dont la version de Delphi ne permet pas d'avoir accès à cette fonction, on peut utiliser le code présent da l'unité Julien2Gregorien.pas
téléchargement : Julien2Gregorien.pas [4 ko]


Ce document issu de www.developpez.com est soumis à la licence GNU FDL traduit en français ici
Permission vous est donnée de distribuer, modifier des copies de cette page tant que cette note apparaît clairement.