| auteurs : Psl, Ricky81 | Les deux principaux types de date sont TDate et TDateTime : TDate représente une date sous la forme AAAA, MM et JJ TDateTime représente la date et l'heure sous la forme AAAA, MM, JJ, HH, MM, SS, mSS.
Ces types disposent d'une propriété Val qui est un double définit comme suit : sa partie entière correspond au nombre de jours écoulés depuis le 30/12/1899, sa partie décimale (nulle dans le cas d'un TDate) correspond au nombre d'heures (ramené à 24) depuis minuit.
Pour bénéficier des fonctions et méthodes spécifiques à ces types, il vous faudra inclure DateUtils.hpp.
TDate date1, date2, date3;
TDateTime date4;
date1 = Yesterday ();
date2 = Date ();
date3 = Tomorrow ();
date4 = Now ();
|
Pour une gestion du temps, vous pouvez utiliser le type TTime qui représente un temps sous la forme HH, MM, SS et mSec.
TTime time = EncodeTime (15 , 10 , 54 , 0 );
|
|
| auteurs : Psl, Ricky81 | Pour affecter une date à une variable de type TDate ou TDateTime, vous pouvez utiliser la fonction EncodeDate.
TDate date;
date = EncodeDate (annee, mois, jour);
|
Pour extraire des informations à partir d'une date, il suffit d'utiliser la fonction DecodeDate : le code suivant initialise les variables annee, mois et jour.
WORD annee, mois, jour;
date = Date ();
DecodeDate (date, annee, mois, jour);
|
Des fonctions similaires sont disponibles pour la gestion du temps :
TDateTime __fastcall EncodeTime (Word Hour, Word Min, Word Sec, Word MSec);
void __fastcall DecodeTime (const System:: TDateTime DateTime, Word & Hour, Word & Min, Word & Sec, Word & MSec);
|
Enfin, à noter les fonctions EncodeDateTime et DecodeDateTime pour la gestion simultanée de la date et de l'heure.
|
| auteur : Ricky81 | Pour savoir si une date est valide, utilisez la fonction IsValidDate. Pour le cas d'un temps, utilisez la fonction IsValidTime.
bool bonneDate, bonneHeure;
bonneDate = IsValidDate (annee, mois, jour);
bonneHeure = IsValidTime (heure, minute, seconde, milliseconde);
|
Il s'agit ici de vérifier qu'à partir des différentes valeurs constituant la date/heure, on construit bien une date/heure valide.
|
| auteurs : Nono40, Ricky81 | Pour modifier l'heure et la date du PC il faut utiliser la fonction API SetSystemTime. Or cette fonction demande une heure absolue. La fonction suivante permet de mettre à l'heure le PC en fonction des décalages horaires et de l'heure d'été :
bool __fastcall miseHeure (TDateTime dateHeure)
{
TSystemTime * infos = new TSystemTime;
TTimeZoneInformation * zone = new TTimeZoneInformation;
int retour;
retour = GetTimeZoneInformation (zone);
switch (retour)
{
case TIME_ZONE_ID_UNKNOWN :
dateHeure = dateHeure + (zone- > Bias / (24 .* 60 .));
case TIME_ZONE_ID_STANDARD :
dateHeure = dateHeure + ((zone- > Bias + zone- > StandardBias) / (24 .* 60 .));
case TIME_ZONE_ID_DAYLIGHT :
dateHeure = dateHeure + ((zone- > Bias + zone- > DaylightBias) / (24 .* 60 .));
}
infos- > wYear = YearOf (dateHeure);
infos- > wMonth = MonthOf (dateHeure);
infos- > wDayOfWeek = DayOfWeek (dateHeure);
infos- > wDay = DayOf (dateHeure);
infos- > wHour = HourOf (dateHeure);
infos- > wMinute = MinuteOf (dateHeure);
infos- > wSecond = SecondOf (dateHeure);
infos- > wMilliseconds = MilliSecondOf (dateHeure);
return SetSystemTime (infos);
}
|
Sans oublier un : |
| auteur : doudouallemand |
Vous pouvez utiliser pour cela la méthode GetTickCount, qui vous renvoie un entier, en millisecondes, correspondant au temps écoulé depuis que l'ordinateur est allumé.
void TestGetTickCount ()
{
int start, stop, lap;
start = GetTickCount ();
lap = GetTickCount () - start;
stop = GetTickCount () - start;
}
|
|
Consultez les autres F.A.Q.
|
|