CTime, classe
Représente une heure et une date absolues.
Syntaxe
class CTime
Membres
Constructeurs publics
Nom | Description |
---|---|
CTime ::CTime | Construit des CTime objets de différentes façons. |
Méthodes publiques
Nom | Description |
---|---|
CTime ::Format | Convertit un CTime objet en chaîne mise en forme, en fonction du fuseau horaire local. |
CTime ::FormatGmt | Convertit un CTime objet en chaîne mise en forme, en fonction de l’heure UTC. |
CTime ::GetAsDBTIMESTAMP | Convertit les informations de temps stockées dans l’objet CTime en structure DBTIMESTAMP compatible Win32. |
CTime ::GetAsSystemTime | Convertit les informations de temps stockées dans l’objet CTime en une structure SYSTEMTIME compatible Win32. |
CTime ::GetCurrentTime | Crée un CTime objet qui représente l’heure actuelle (fonction membre statique). |
CTime ::GetDay | Retourne le jour représenté par l’objet CTime . |
CTime ::GetDayOfWeek | Retourne le jour de la semaine représenté par l’objet CTime . |
CTime ::GetGmtTm | Décompose un CTime objet en composants, en fonction de l’heure UTC. |
CTime ::GetHour | Retourne l’heure représentée par l’objet CTime . |
CTime ::GetLocalTm | Décompose un CTime objet en composants, en fonction du fuseau horaire local. |
CTime ::GetMinute | Retourne la minute représentée par l’objet CTime . |
CTime ::GetMonth | Retourne le mois représenté par l’objet CTime . |
CTime ::GetSecond | Retourne la deuxième représentée par l’objet CTime . |
CTime ::GetTime | Retourne une valeur __time64_t pour l’objet donné CTime . |
CTime ::GetYear | Retourne l’année représentée par l’objet CTime . |
CTime ::Serialize64 | Sérialise les données vers ou à partir d’une archive. |
Opérateurs
Nom | Description |
---|---|
opérateur + - | Ces opérateurs ajoutent et soustraient CTimeSpan des CTime objets. |
operator +=, -= | Ces opérateurs ajoutent et soustraient un CTimeSpan objet vers et à partir de cet CTime objet. |
operator = | Opérateur d’assignation . |
operator ==, < , etc. | Opérateurs de comparaison. |
Notes
CTime
n’a pas de classe de base.
CTime
les valeurs sont basées sur l’heure universelle coordonnée (UTC), qui équivaut au temps universel coordonné (Heure de Greenwich, GMT). Consultez Gestion du temps pour plus d’informations sur la façon dont le fuseau horaire est déterminé.
Lorsque vous créez un CTime
objet, définissez le nDST
paramètre sur 0 pour indiquer que l’heure standard est en vigueur, ou sur une valeur supérieure à 0 pour indiquer que l’heure d’été est en vigueur, ou à une valeur inférieure à zéro pour que le code de la bibliothèque d’exécution C calcule si l’heure d’été ou l’heure d’été est en vigueur. tm_isdst
est un champ obligatoire. Si elle n’est pas définie, sa valeur n’est pas définie et la valeur de retour de mktime est imprévisible. Si timeptr
elle pointe vers une structure tm retournée par un appel précédent à asctime_s, _gmtime_s ou localtime_s, le tm_isdst
champ contient la valeur correcte.
Une classe complémentaire, CTimeSpan, représente un intervalle de temps.
Les CTime
classes et CTimeSpan
les classes ne sont pas conçues pour la dérivation. Étant donné qu’il n’existe aucune fonction virtuelle, la taille et CTime
CTimeSpan
les objets sont exactement de 8 octets. La plupart des fonctions membres sont inline.
Remarque
La limite de date supérieure est 12/31/3000. La limite inférieure est 1/1/1970 12:00:00 GMT.
Pour plus d’informations sur l’utilisationCTime
, consultez les articles Date et Heure et Gestion de l’heure dans la référence de la bibliothèque d’exécution.
Remarque
La CTime
structure est passée de MFC 7.1 à MFC 8.0. Si vous sérialisez une CTime
structure à l’aide de l’opérateur << sous MFC 8.0 ou une version ultérieure, le fichier résultant ne sera pas lisible sur les versions antérieures de MFC.
Spécifications
En-tête : atltime.h
Opérateurs de comparaison CTime
Opérateurs de comparaison.
bool operator==(CTime time) const throw();
bool operator!=(CTime time) const throw();
bool operator<(CTime time) const throw();
bool operator>(CTime time) const throw();
bool operator<=(CTime time) const throw();
bool operator>=(CTime time) const throw();
Paramètres
time
Objet CTime
à comparer.
Valeur de retour
Ces opérateurs comparent deux fois absolues et retournent TRUE si la condition est vraie ; sinon FALSE.
Exemple
CTime t1 = CTime::GetCurrentTime();
CTime t2 = t1 + CTimeSpan(0, 1, 0, 0); // 1 hour later
ATLASSERT(t1 != t2);
ATLASSERT(t1 < t2);
ATLASSERT(t1 <= t2);
CTime ::CTime
Crée un CTime
objet initialisé avec l’heure spécifiée.
CTime() throw();
CTime(__time64_t time) throw();
CTime(int nYear, int nMonth, int nDay,
int nHour, int nMin, int nSec, int nDST = -1);
CTime(WORD wDosDate, WORD wDosTime, int nDST = -1);
CTime(const SYSTEMTIME& st, int nDST = - 1) throw();
CTime(const FILETIME& ft, int nDST = - 1);
CTime(const DBTIMESTAMP& dbts, int nDST = -1) throw();
Paramètres
timeSrc
Indique un CTime
objet qui existe déjà.
time
Valeur __time64_t
de temps, qui correspond au nombre de secondes après le 1er janvier 1970 UTC. Notez que cela sera ajusté à votre heure locale. Par exemple, si vous êtes à New York et que vous créez un CTime
objet en passant un paramètre de 0, CTime ::GetMonth retourne 12.
nYear, nMonth, nDay, nHour, nMin, nSec
Indique les valeurs de date et d’heure à copier dans le nouvel CTime
objet.
nDST
Indique si l’heure d’été est en vigueur. Peut avoir l’une des trois valeurs suivantes :
nDST défini sur 0Standard time is in effect.
nDST défini sur une valeur supérieure à 0Daylight gain de temps est en vigueur.
nDST défini sur une valeur inférieure à 0 La valeur par défaut. Calcule automatiquement si l’heure d’été ou l’heure d’été est en vigueur.
wDosDate, wDosTime
Valeurs de date et d’heure MS-DOS à convertir en valeur date/heure et copiées dans le nouvel CTime
objet.
st
Structure SYSTEMTIME à convertir en valeur de date/heure et copiée dans le nouvel CTime
objet.
Ft
Structure FILETIME à convertir en valeur date/heure et copiée dans le nouvel CTime
objet.
dbts
Référence à une structure DBTIMESTAMP contenant l’heure locale actuelle.
Notes
Chaque constructeur est décrit ci-dessous :
CTime();
Construit un objet non initialiséCTime
. Ce constructeur vous permet de définirCTime
des tableaux d’objets. Vous devez initialiser ces tableaux avec des heures valides avant d’utiliser.CTime( const CTime& );
Construit unCTime
objet à partir d’une autreCTime
valeur.CTime( __time64_t );
Construit unCTime
objet à partir d’un type __time64_t . Ce constructeur attend une heure UTC et convertit le résultat en heure locale avant de stocker le résultat.CTime( int, int, ...);
Construit unCTime
objet à partir de composants de temps local avec chaque composant limité aux plages suivantes :Composant Plage nYear 1970-3000 nMonth 1-12 nDay 1-31 nHour 0-23 nMin 0-59 nSec 0-59 Ce constructeur effectue la conversion appropriée en UTC. La version de débogage de la bibliothèque de classes Microsoft Foundation affirme si un ou plusieurs composants de temps sont hors limites. Vous devez valider les arguments avant d’appeler. Ce constructeur attend une heure locale.
CTime( WORD, WORD );
Construit unCTime
objet à partir des valeurs de date et d’heure MS-DOS spécifiées. Ce constructeur attend une heure locale.CTime( const SYSTEMTIME& );
Construit unCTime
objet à partir d’uneSYSTEMTIME
structure. Ce constructeur attend une heure locale.CTime( const FILETIME& );
Construit unCTime
objet à partir d’uneFILETIME
structure. Vous n’utiliserezCTime FILETIME
probablement pas directement l’initialisation. Si vous utilisez unCFile
objet pour manipuler un fichier,CFile::GetStatus
récupère l’horodatage du fichier pour vous par le biais d’unCTime
objet initialisé avec uneFILETIME
structure. Ce constructeur suppose une heure basée sur UTC et convertit automatiquement la valeur en heure locale avant de stocker le résultat.Remarque
Le constructeur utilisant
DBTIMESTAMP
le paramètre est disponible uniquement lorsque OLEDB.h est inclus.
Pour plus d’informations, consultez la structure SYSTEMTIME et FILETIME dans le Kit de développement logiciel (SDK) Windows. Consultez également l’entrée date et heure MS-DOS dans le Kit de développement logiciel (SDK) Windows.
Exemple
time_t osBinaryTime; // C run-time time (defined in <time.h>)
time(&osBinaryTime) ; // Get the current time from the
// operating system.
CTime time1; // Empty CTime. (0 is illegal time value.)
CTime time2 = time1; // Copy constructor.
CTime time3(osBinaryTime); // CTime from C run-time time
CTime time4(1999, 3, 19, 22, 15, 0); // 10:15PM March 19, 1999
CTime ::Format
Appelez cette fonction membre pour créer une représentation mise en forme de la valeur date-heure.
CString Format(LPCTSTR pszFormat) const;
CString Format(UINT nFormatID) const;
Paramètres
pszFormat
Chaîne de mise en forme similaire à la chaîne de printf
mise en forme. Les codes de mise en forme, précédés d’un signe de pourcentage (%
) sont remplacés par le composant correspondant CTime
. Les autres caractères de la chaîne de mise en forme sont copiés inchangés dans la chaîne retournée. Consultez la fonction d’exécution strftime pour obtenir la liste des codes de mise en forme.
nFormatID
ID de la chaîne qui identifie ce format.
Valeur de retour
CString qui contient l’heure mise en forme.
Notes
Si l’état de cet CTime
objet est Null, la valeur de retour est une chaîne vide.
Cette méthode lève une exception si la valeur date-heure à mettre en forme n’est pas comprise entre minuit, le 1er janvier 1970 et le 31 décembre 3000 temps universel coordonné (UTC).
Exemple
CTime t(1999, 3, 19, 22, 15, 0);
// 10:15 PM March 19, 1999
CString s = t.Format(_T("%A, %B %d, %Y"));
ATLASSERT(s == _T("Friday, March 19, 1999"));
CTime ::FormatGmt
Génère une chaîne mise en forme qui correspond à cet CTime
objet.
CString FormatGmt(LPCTSTR pszFormat) const;
CString FormatGmt(UINT nFormatID) const;
Paramètres
pszFormat
Spécifie une chaîne de mise en forme similaire à la printf
chaîne de mise en forme. Pour plus d’informations, consultez la fonction d’exécution strftime .
nFormatID
ID de la chaîne qui identifie ce format.
Valeur de retour
CString qui contient l’heure mise en forme.
Notes
La valeur de temps n’est pas convertie et reflète donc l’heure UTC.
Cette méthode lève une exception si la valeur date-heure à mettre en forme n’est pas comprise entre minuit, le 1er janvier 1970 et le 31 décembre 3000 temps universel coordonné (UTC).
Exemple
Consultez l’exemple de CTime ::Format.
CTime ::GetAsDBTIMESTAMP
Appelez cette fonction membre pour convertir les informations de temps stockées dans l’objet CTime
en structure DBTIMESTAMP compatible Win32.
bool GetAsDBTIMESTAMP(DBTIMESTAMP& dbts) const throw();
Paramètres
dbts
Référence à une structure DBTIMESTAMP contenant l’heure locale actuelle.
Valeur de retour
Valeur différente de zéro cas de réussite ; sinon, 0.
Notes
Stocke l’heure résultante dans la structure dbts référencée. La DBTIMESTAMP
structure de données initialisée par cette fonction aura son fraction
membre défini sur zéro.
Exemple
CTime t = CTime::GetCurrentTime();
DBTIMESTAMP ts;
t.GetAsDBTIMESTAMP(ts); // Retrieves the time in t into the ts structure
CTime ::GetAsSystemTime
Appelez cette fonction membre pour convertir les informations de temps stockées dans l’objet CTime
en une structure SYSTEMTIME compatible Win32.
bool GetAsSystemTime(SYSTEMTIME& st) const throw();
Paramètres
timeDest
Référence à une structure SYSTEMTIME qui contiendra la valeur date/heure convertie de l’objet CTime
.
Valeur de retour
TRUE en cas de réussite, sinon FALSE.
Notes
GetAsSystemTime
stocke l’heure résultante dans la structure timeDest référencée. La SYSTEMTIME
structure de données initialisée par cette fonction aura son wMilliseconds
membre défini sur zéro.
Exemple
// Convert CTime to FILETIME
CTime time(CTime::GetCurrentTime());
SYSTEMTIME timeDest;
time.GetAsSystemTime(timeDest);
FILETIME fileTime;
::SystemTimeToFileTime(&timeDest, &fileTime);
CTime ::GetCurrentTime
Retourne un CTime
objet qui représente l’heure actuelle.
static CTime WINAPI GetCurrentTime() throw();
Notes
Retourne la date et l’heure système actuelles en temps universel coordonné (UTC).
Exemple
CTime t = CTime::GetCurrentTime();
CTime ::GetDay
Retourne le jour représenté par l’objet CTime
.
int GetDay() const throw();
Valeur de retour
Retourne le jour du mois, en fonction de l’heure locale, entre 1 et 31.
Notes
Cette fonction appelle GetLocalTm
, qui utilise une mémoire tampon allouée statiquement et de manière statique. Les données de cette mémoire tampon sont remplacées en raison d’appels à d’autres CTime
fonctions membres.
Exemple
// Example for CTime::GetDay, CTime::GetMonth, and CTime::GetYear
CTime t(1999, 3, 19, 22, 15, 0); // 10:15 PM March 19, 1999
ATLASSERT(t.GetDay() == 19);
ATLASSERT(t.GetMonth() == 3);
ATLASSERT(t.GetYear() == 1999);
CTime ::GetDayOfWeek
Retourne le jour de la semaine représenté par l’objet CTime
.
int GetDayOfWeek() const throw();
Valeur de retour
Retourne le jour de la semaine en fonction de l’heure locale ; 1 = Dimanche, 2 = Lundi, à 7 = Samedi.
Notes
Cette fonction appelle GetLocalTm
, qui utilise une mémoire tampon allouée statiquement en interne. Les données de cette mémoire tampon sont remplacées en raison d’appels à d’autres CTime
fonctions membres.
Exemple
// Print out the day of the week using localized day name
UINT DayOfWeek[] = {
LOCALE_SDAYNAME7, // Sunday
LOCALE_SDAYNAME1,
LOCALE_SDAYNAME2,
LOCALE_SDAYNAME3,
LOCALE_SDAYNAME4,
LOCALE_SDAYNAME5,
LOCALE_SDAYNAME6 // Saturday
};
TCHAR strWeekday[256];
CTime time(CTime::GetCurrentTime()); // Initialize CTime with current time
::GetLocaleInfo(LOCALE_USER_DEFAULT, // Get string for day of the week from system
DayOfWeek[time.GetDayOfWeek()-1], // Get day of week from CTime
strWeekday, sizeof(strWeekday) / sizeof(strWeekday[0]));
ATLTRACE(_T("%s\n"), strWeekday); // Print out day of the week
CTime ::GetGmtTm
Obtient une struct tm qui contient une décomposition du temps contenu dans cet CTime
objet.
struct tm* GetGmtTm(struct tm* ptm) const;
Paramètres
ptm
Pointe vers une mémoire tampon qui recevra les données de temps. Si ce pointeur a la valeur NULL, une exception est levée.
Valeur de retour
Pointeur vers un struct rempli tm tel que défini dans le fichier INCLUDE TIME.H. Consultez gmtime, _gmtime32, _gmtime64 pour la disposition de la structure.
Notes
GetGmtTm
retourne UTC.
ptm ne peut pas être NULL. Si vous souhaitez revenir à l’ancien comportement, dans lequel ptm peut être NULL pour indiquer qu’une mémoire tampon allouée statiquement et statiquement doit être utilisée, puis non définie _SECURE_ATL.
Exemple
// Compute difference between local time and GMT
CTime time(CTime::GetCurrentTime());
tm t1, t2;
time.GetLocalTm(&t1);
time.GetGmtTm(&t2);
ATLTRACE(_T("Difference between local time and GMT is %d hours.\n"),
t1.tm_hour - t2.tm_hour);
CTime ::GetHour
Retourne l’heure représentée par l’objet CTime
.
int GetHour() const throw();
Valeur de retour
Retourne l’heure, en fonction de l’heure locale, entre 0 et 23.
Notes
Cette fonction appelle GetLocalTm
, qui utilise une mémoire tampon allouée statiquement en interne. Les données de cette mémoire tampon sont remplacées en raison d’appels à d’autres CTime
fonctions membres.
Exemple
// Example for CTime::GetHour, CTime::GetMinute, and CTime::GetSecond
CTime t(1999, 3, 19, 22, 15, 0); // 10:15 PM March 19, 1999
ATLASSERT(t.GetSecond() == 0);
ATLASSERT(t.GetMinute() == 15);
ATLASSERT(t.GetHour() == 22);
CTime ::GetLocalTm
Obtient un struct tm contenant une décomposition du temps contenu dans cet CTime
objet.
struct tm* GetLocalTm(struct tm* ptm) const;
Paramètres
ptm
Pointe vers une mémoire tampon qui recevra les données de temps. Si ce pointeur a la valeur NULL, une exception est levée.
Valeur de retour
Pointeur vers un struct rempli tm tel que défini dans le fichier INCLUDE TIME.H. Consultez gmtime, _gmtime32, _gmtime64 pour la disposition de la structure.
Notes
GetLocalTm
retourne l’heure locale.
ptm ne peut pas être NULL. Si vous souhaitez revenir à l’ancien comportement, dans lequel ptm peut être NULL pour indiquer qu’une mémoire tampon allouée statiquement et statiquement doit être utilisée, puis non définie _SECURE_ATL.
Exemple
CTime t(1999, 3, 19, 22, 15, 0); // 10:15PM March 19, 1999
tm osTime; // A structure containing time elements.
t.GetLocalTm(&osTime);
ATLASSERT(osTime.tm_mon == 2); // Note zero-based month!
CTime ::GetMinute
Retourne la minute représentée par l’objet CTime
.
int GetMinute() const throw();
Valeur de retour
Retourne la minute, en fonction de l’heure locale, comprise entre 0 et 59.
Notes
Cette fonction appelle GetLocalTm
, qui utilise une mémoire tampon allouée statiquement en interne. Les données de cette mémoire tampon sont remplacées en raison d’appels à d’autres CTime
fonctions membres.
Exemple
Consultez l’exemple de GetHour.
CTime ::GetMonth
Retourne le mois représenté par l’objet CTime
.
int GetMonth() const throw();
Valeur de retour
Retourne le mois, en fonction de l’heure locale, dans la plage comprise entre 1 et 12 (1 = janvier).
Notes
Cette fonction appelle GetLocalTm
, qui utilise une mémoire tampon allouée statiquement en interne. Les données de cette mémoire tampon sont remplacées en raison d’appels à d’autres CTime
fonctions membres.
Exemple
Consultez l’exemple de GetDay.
CTime ::GetSecond
Retourne la deuxième représentée par l’objet CTime
.
int GetSecond() const throw();
Valeur de retour
Retourne la seconde, en fonction de l’heure locale, dans la plage 0 à 59.
Notes
Cette fonction appelle GetLocalTm
, qui utilise une mémoire tampon allouée statiquement en interne. Les données de cette mémoire tampon sont remplacées en raison d’appels à d’autres CTime
fonctions membres.
Exemple
Consultez l’exemple de GetHour.
CTime ::GetTime
Retourne une valeur __time64_t pour l’objet donné CTime
.
__time64_t GetTime() const throw();
Valeur de retour
GetTime
retourne le nombre de secondes entre l’objet actuel CTime
et le 1er janvier 1970.
Exemple
CTime t(2005, 10, 20, 23, 50, 0); // 11:50 PM October 20, 2005
time_t osBinaryTime = t.GetTime(); // time_t defined in <time.h>
_tprintf_s(_T("time_t = %ld\n"), osBinaryTime);
CTime ::GetYear
Retourne l’année représentée par l’objet CTime
.
int GetYear();
Valeur de retour
Retourne l’année, en fonction de l’heure locale, dans la plage de 1 1970, au 18 janvier 2038 (inclus).
Notes
Cette fonction appelle GetLocalTm
, qui utilise une mémoire tampon allouée statiquement en interne. Les données de cette mémoire tampon sont remplacées en raison d’appels à d’autres CTime
fonctions membres.
Exemple
Consultez l’exemple de GetDay.
CTime ::operator =
Opérateur d’assignation .
CTime& operator=(__time64_t time) throw();
Paramètres
time
Nouvelle valeur de date/heure.
Valeur de retour
Objet mis à jour CTime
.
Notes
Cet opérateur d’affectation surchargé copie l’heure source dans cet CTime
objet. Le stockage de temps interne dans un CTime
objet est indépendant du fuseau horaire. La conversion de fuseau horaire n’est pas nécessaire pendant l’affectation.
CTime ::operator +, -
Ces opérateurs ajoutent et soustraient CTimeSpan
des CTime
objets.
CTime operator+(CTimeSpan timeSpan) const throw();
CTime operator-(CTimeSpan timeSpan) const throw();
CTimeSpan operator-(CTime time) const throw();
Paramètres
timeSpan
Objet CTimeSpan
à ajouter ou soustraire.
time
Objet CTime
à soustraire.
Valeur de retour
Objet CTime
ou CTimeSpan
représentant le résultat de l’opération.
Notes
CTime
les objets représentent l’heure absolue, CTimeSpan
les objets représentent l’heure relative. Les deux premiers opérateurs vous permettent d’ajouter et de soustraire CTimeSpan
des objets vers et depuis CTime
des objets. Le troisième opérateur vous permet de soustraire un objet d’un CTime
autre pour générer un CTimeSpan
objet.
Exemple
CTime t1(1999, 3, 19, 22, 15, 0); // 10:15 PM March 19, 1999
CTime t2(1999, 3, 20, 22, 15, 0); // 10:15 PM March 20, 1999
CTimeSpan ts = t2 - t1; // Subtract 2 CTimes
ATLASSERT(ts.GetTotalSeconds() == 86400L);
ATLASSERT((t1 + ts) == t2); // Add a CTimeSpan to a CTime.
ATLASSERT((t2 - ts) == t1); // Subtract a CTimeSpan from a CTime.
CTime ::operator +=, -=
Ces opérateurs ajoutent et soustraient un CTimeSpan
objet vers et à partir de cet CTime
objet.
CTime& operator+=(CTimeSpan span) throw();
CTime& operator-=(CTimeSpan span) throw();
Paramètres
empan
Objet CTimeSpan
à ajouter ou soustraire.
Valeur de retour
Objet mis à jour CTime
.
Notes
Ces opérateurs vous permettent d’ajouter et de soustraire un CTimeSpan
objet vers et depuis cet CTime
objet.
Exemple
CTime t(1999, 3, 19, 22, 15, 0); // 10:15 PM March 19, 1999
t += CTimeSpan(0, 1, 0, 0); // 1 hour exactly
ATLASSERT(t.GetHour() == 23);
CTime ::Serialize64
Remarque
Cette méthode est disponible uniquement dans les projets MFC.
Sérialise les données associées à la variable membre vers ou à partir d’une archive.
CArchive& Serialize64(CArchive& ar);
Paramètres
Ar
Objet CArchive
à mettre à jour.
Valeur de retour
Objet mis à jour CArchive
.
Voir aussi
asctime_s, _wasctime_s
_ftime_s, _ftime32_s, _ftime64_s
gmtime_s, _gmtime32_s, _gmtime64_s
localtime_s, _localtime32_s, _localtime64_s
strftime, wcsftime, _strftime_l, _wcsftime_l
time, _time32, _time64
CTimeSpan, classe
Graphique hiérarchique
Classes partagées ATL/MFC