Partager via


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éfinir CTime des tableaux d’objets. Vous devez initialiser ces tableaux avec des heures valides avant d’utiliser.

  • CTime( const CTime& ); Construit un CTime objet à partir d’une autre CTime valeur.

  • CTime( __time64_t ); Construit un CTime 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 un CTime 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 un CTime objet à partir des valeurs de date et d’heure MS-DOS spécifiées. Ce constructeur attend une heure locale.

  • CTime( const SYSTEMTIME& ); Construit un CTime objet à partir d’une SYSTEMTIME structure. Ce constructeur attend une heure locale.

  • CTime( const FILETIME& ); Construit un CTime objet à partir d’une FILETIME structure. Vous n’utiliserez CTime FILETIME probablement pas directement l’initialisation. Si vous utilisez un CFile objet pour manipuler un fichier, CFile::GetStatus récupère l’horodatage du fichier pour vous par le biais d’un CTime objet initialisé avec une FILETIME 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

GetAsSystemTimestocke 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