FAQ DelphiConsultez toutes les FAQ
Nombre d'auteurs : 124, nombre de questions : 934, dernière mise à jour : 23 octobre 2024 Ajouter une question
Cette FAQ a été réalisée à partir des questions fréquemment posées sur les forums Delphi et Delphi et bases de données de www.developpez.com et de l'expérience personnelle des auteurs.
Nous tenons à souligner que cette FAQ ne garantit en aucun cas que les informations qu'elle propose soient correctes. Les auteurs font le maximum, mais l'erreur est humaine. Cette FAQ ne prétend pas non plus être complète. Si vous souhaitez y apporter des corrections ou la compléter, contactez un responsable (lien au bas de cette page).
Nous espérons que cette FAQ saura répondre à vos attentes. Nous vous en souhaitons une bonne lecture.
L'équipe Delphi de Developpez.com.
- Comment additionner ou soustraire des jours à une date ?
- Comment calculer le nombre de jours entre deux dates ?
- Comment calculer le numéro de jour dans l'année d'une date ?
- Comment calculer le numéro de semaine dans l'année d'une date ?
- Comment calculer le jour de la semaine pour une date ?
- Comment afficher la meilleure représentation d'une durée ?
- Comment calculer le trimestre d'une date ?
Pour ajouter ou soustraire un nombre de jours à une date, on peut utiliser plusieurs méthodes.
En utilisant directement la date :
Code delphi : | Sélectionner tout |
1 2 3 4 5 6 7 8 | var Date1 : TdateTime; NbJour : Integer; begin Date1 := EncodeDate(2002, 11, 1); Date1 := Date1 + NbJour; {ou bien Date1 := Date1 - NbJour;} end; |
En utilisant des fonctions :
Code delphi : | Sélectionner tout |
1 2 3 4 5 6 7 8 | uses DateUtils; var Date1 : TdateTime; NbJour : Integer; begin Date1 := EncodeDate(2002, 11, 1); Date1 := IncDay(Date1, NbJour); |
On peut également utiliser les fonctions IncMonth(), IncYear() et IncWeek() :
Code delphi : | Sélectionner tout |
1 2 3 | Date1 := IncMonth(Date1, NbMois); Date1 := IncYear(Date1, NbAnnee); Date1 := IncWeek(Date1, NbSemaine); |
En utilisant le jour Julien :
Code delphi : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 10 11 12 | uses DateUtils; var Date1 : TdateTime; Annee, Mois, Jour, Heure, Minute, Seconde, milliSec : Word; NbJour : Integer; JourJul : Double; begin Date1 := EncodeDateTime(Annee, Mois, Jour, Heure, Minute, Seconde, milliSec); JourJul := DateTimeToJulianDate(Date1) + NbJour; Date1 := JulianDateToDateTime(Date1); end; |
Pour calculer la différence entre deux dates, on peut utiliser plusieurs méthodes :
En passant directement par les dates :
Code delphi : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 10 | 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 :
Code delphi : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 10 | 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 :
Code delphi : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 10 | 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; |
Le rang du jour de l'année est obtenu par la fonction DayOfTheYear() :
Code delphi : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 | uses DateUtils; var Date1 : TDateTime; NumeroJ : Integer; begin Date1 := Now; {Date système} NumeroJ := DayOfTheYear(Date1); end; |
Le numéro de la semaine dans l'année est obtenu par la fonction WeekOfTheYear() :
Code delphi : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 | uses DateUtils; var Date1 : TDateTime; NumSem : Word; begin Date1 := EncodeDate(2002, 11, 1); NumSem := WeekOfTheYear(Date1); end; |
Le jour de la semaine est obtenu par la fonction DayOfTheWeek() :
Code delphi : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 | uses DateUtils; var JourSem : Word; Date1 : TDateTime; begin Date1 := EncodeDate(2002, 11, 1); JourSem := DayOfTheWeek(Date1); end; |
Les fonctions de chronométrage précises renvoient, en général, une durée fractionnaire exprimée en secondes. Cependant, l'affichage de la durée dans cette unité est souvent inadapté, et demande à être exprimé dans une unité plus appropriée.
Code Delphi : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 | { Convertit une durée exprimée en secondes vers la meilleure unité possible. SecCount : Nombre de secondes écoulées. Retour : Chaîne formatée (2 décimales), avec unité de temps. } Function BestTimeDisplay ( SecCount : Extended ) : String ; Var TimeUnit : String ; Begin TimeUnit := 's' ; // Temps < 1 s. If (SecCount < 1) Then Begin // Temps en ms. SecCount := SecCount * 1000; TimeUnit := 'ms'; // Temps en µs. If (SecCount < 1) Then Begin SecCount := SecCount * 1000; TimeUnit := 'µs'; End; // Temps en ns. If (SecCount < 1) Then Begin SecCount := SecCount * 1000; TimeUnit := 'ns'; End; End Else Begin // Temps > 1 mn. If (SecCount > 60) Then Begin SecCount := SecCount / 60; TimeUnit := 'mn'; End; // Temps > 1 h. If (SecCount > 60) Then Begin SecCount := SecCount / 60; TimeUnit := 'h'; // Temps > 1 j. If (SecCount > 24) Then Begin SecCount := SecCount / 24; TimeUnit := 'j'; End; End; End; // On a une unité de temps et une valeur : on peut préparer l'affichage. Result := Format('%.2f %s', [SecCount, TimeUnit]); End; |
Cette fonction renvoie, à la manière de la partie entière d'un TDate, le nombre de trimestres depuis le 1er janvier de l'an un (1/1/1), y compris le trimestre en cours…
Code Delphi : | Sélectionner tout |
1 2 3 4 5 | function QuelTrimestre(Jour: TDate): integer; begin Result:=(yearof(jour)-1)*4 +(monthof(jour)-1)div 3+1; end; |
- Le nombre de trimestres écoulés entre deux dates :
Code Delphi : | Sélectionner tout |
1 2 3 4 5 6 7 | var DateDebut,DateFin:TDate; NombreDeTrimestres:integer; begin ... NombreDeTrimestres := QuelTrimestre(DateFin) - QuelTrimestre(DateDebut); end; |
Code Delphi : | Sélectionner tout |
1 2 3 4 5 | function Trimestre(jour:TDate):integer; begin Result := ((QuelTrimestre(Now)-1) mod 4)+1; end; |
Proposer une nouvelle réponse sur la FAQ
Ce n'est pas l'endroit pour poser des questions, allez plutôt sur le forum de la rubrique pour çaLes sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2024 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.