tantemerde c'est pas faux | Merci de vos réponses
Malheureusement pour ce projet j'utilise Deplhi 5 et les fonctions citées ci-dessus sont toutes inconnues.
J'ai donc codé ma propre fonction, que je copie ici au cas où ça intéresserait d'autres personnes :
Code :
- {******************************************************************************************}
- {*** Cette fonction renvoie le numéro du dernier jour du mois relatif à la date fournie ***}
- {******************************************************************************************}
- function LastDayOfMonth(d: TDate): integer;
- var A,M,J: Word;
- begin
- { On incrémente la date reçue d'un mois }
- d := IncMonth(d,1);
- { On décode la date obtenue }
- DecodeDate(d,A,M,J);
- { On réencode la date incrémentée d'un mois, avec un jour à 1 }
- d := EncodeDate(A,M,1);
- { On revient en arrière d'un jour ==> on obtient le dernier jour du mois demandé }
- d := d-1;
- { On décode à nouveau la date obtenue pour récupérer le numéro du jour }
- DecodeDate(d,A,M,J);
- { On renvoie le résultat du calcul }
- result := J;
- end;
|
Et tant qu'on y est j'ai aussi écrit une fonction qui renvoie le numéro de la semaine pour la date fournie en paramètre, je partage au cas où :
Code :
- {***********************************************************************************************}
- {*** Cette fonction renvoie le numéro de la semaine dans laquelle se trouve la date fournie. ***}
- {***********************************************************************************************}
- function TFSRIS01.NumSemaine(d: TDate): integer;
- var A,M,J: Word;
- d1: TDate;
- nb: integer;
- begin
- { On calcule le nombre de jours qui nous séparent du dimanche suivant }
- nb := 8-DayOfWeek(d);
- if (nb = 7) then nb := 0;
- { On ajout ce nombre à la date fournie pour se positionner sur le dernier jours de la semaine demandée }
- d := d+nb;
- { On décode la date obtenue pour récupérer l'année}
- DecodeDate(d,A,M,J);
- { On vérifie que la date ne se trouve pas dans une zone "charnière" entre deux années}
- if ((M = 1) and ((J-nb) <= 0)) then
- begin // période charnière
- d1 := EncodeDate(A,1,1);
- nb := DayOfWeek(d1);
- if ((nb >= 6) or (nb <= 1)) then
- A := A-1;
- end;
- { On crée une date au premier janvier de l'année demandée }
- d1 := EncodeDate(A,1,1);
- { On calcule le nombre de semaines entières écoulées depuis le 1er janvier }
- nb := Round((d-d1+1)/7);
- { On renvoie le résultat du calcul }
- result := nb;
- end;
|
Message édité par tantemerde le 06-02-2008 à 10:50:30
|