Partager via


COleDateTime, classe

Encapsule le DATE type de données utilisé dans OLE Automation.

Syntaxe

class COleDateTime

Membres

Constructeurs publics

Nom Description
COleDateTime ::COleDateTime Construit un objet COleDateTime.

Méthodes publiques

Nom Description
COleDateTime ::Format Génère une représentation sous forme de chaîne d’un COleDateTime objet.
COleDateTime ::GetAsDBTIMESTAMP Appelez cette méthode pour obtenir l’heure dans l’objet COleDateTime en tant que DBTIMESTAMP structure de données.
COleDateTime ::GetAsSystemTime Appelez cette méthode pour obtenir l’heure dans l’objet COleDateTime en tant que structure de données SYSTEMTIME .
COleDateTime ::GetAsUDATE Appelez cette méthode pour obtenir le temps dans la COleDateTimeUDATE structure de données.
COleDateTime ::GetCurrentTime Crée un COleDateTime objet qui représente l’heure actuelle (fonction membre statique).
COleDateTime ::GetDay Retourne le jour où cet COleDateTime objet représente (1 à 31).
COleDateTime ::GetDayOfWeek Retourne le jour de la semaine que cet COleDateTime objet représente (dimanche = 1).
COleDateTime ::GetDayOfYear Retourne le jour de l’année que cet COleDateTime objet représente (Jan 1 = 1).
COleDateTime ::GetHour Retourne l’heure que cet COleDateTime objet représente (0 - 23).
COleDateTime ::GetMinute Retourne la minute que cet COleDateTime objet représente (0 - 59).
COleDateTime ::GetMonth Retourne le mois que cet COleDateTime objet représente (1 à 12).
COleDateTime ::GetSecond Retourne le second que cet COleDateTime objet représente (0 - 59).
COleDateTime ::GetStatus Obtient l’état (validité) de cet COleDateTime objet.
COleDateTime ::GetYear Retourne l’année que cet COleDateTime objet représente.
COleDateTime ::P arseDateTime Lit une valeur date/heure à partir d’une chaîne et définit la valeur de COleDateTime.
COleDateTime ::SetDate Définit la valeur de cet COleDateTime objet sur la valeur date seule spécifiée.
COleDateTime ::SetDateTime Définit la valeur de cet COleDateTime objet sur la valeur de date/heure spécifiée.
COleDateTime ::SetStatus Définit l’état (validité) de cet COleDateTime objet.
COleDateTime ::SetTime Définit la valeur de cet COleDateTime objet sur la valeur time-only spécifiée.

Opérateurs publics

Nom Description
COleDateTime ::operator ==, COleDateTime ::operator <, etc. Comparez deux COleDateTime valeurs.
COleDateTime ::operator +, COleDateTime ::operator - Ajouter et soustraire des COleDateTime valeurs.
COleDateTime ::operator +=, COleDateTime ::operator -= Ajoutez et soustrait une COleDateTime valeur de cet COleDateTime objet.
COleDateTime ::operator = Copie une COleDateTime valeur.
COleDateTime ::operator DATE, COleDateTime ::operator Date* Convertit une COleDateTime valeur en un DATE ou un DATE*.

Membres de données publics

Nom Description
COleDateTime ::m_dt Contient le sous-jacent DATE de cet COleDateTime objet.
COleDateTime ::m_status Contient l’état de cet COleDateTime objet.

Notes

COleDateTime n’a pas de classe de base.

Il s’agit de l’un des types possibles pour le type de données VARIANT d’automation OLE. Une COleDateTime valeur représente une valeur de date et d’heure absolue.

Le DATE type est implémenté en tant que valeur à virgule flottante. Les jours sont mesurés du 30 décembre 1899 à minuit. Le tableau suivant présente certaines dates et leurs valeurs associées :

Date Value
29 décembre 1899, minuit -1.0
29 décembre 1899, 6 h -1.25
30 décembre 1899, minuit 0.0
31 décembre 1899, minuit 1.0
1er janvier 1900, 6 h 2.25

Attention

Dans le tableau ci-dessus, bien que les valeurs de jour deviennent négatives avant minuit le 30 décembre 1899, les valeurs de l’heure du jour ne le font pas. Par exemple, 6 :00 AM est toujours représenté par une valeur fractionnelle 0,25, que l’entier représentant le jour soit positif (après le 30 décembre 1899) ou négatif (avant le 30 décembre 1899). Cela signifie qu’une comparaison simple à virgule flottante trierait par erreur une COleDateTime représentation représentant 6h00 le 12/29/1899 comme plus tard qu’une autre représentant 7h00 le même jour.

La COleDateTime classe gère les dates du 1er janvier 100 au 31 décembre 9999. La COleDateTime classe utilise le calendrier grégorien ; elle ne prend pas en charge les dates Julian. COleDateTime ignore l’heure d’été. (Voir Date et heure : Support Automation.)

Remarque

Vous pouvez utiliser le %y format pour récupérer une année à deux chiffres uniquement pour les dates commençant à 1900. Si vous utilisez le %y format à une date antérieure à 1900, le code génère un échec ASSERT.

Ce type est également utilisé pour représenter des valeurs de date uniquement ou d’heure uniquement. Par convention, la date 0 (30 décembre 1899) est utilisée pour les valeurs d’heure uniquement et l’heure 00 :00 (minuit) est utilisée pour les valeurs date uniquement.

Si vous créez un COleDateTime objet à l’aide d’une date inférieure à 100, la date est acceptée, mais les appels suivants à GetYear, , GetMonth, GetDayGetHour, GetMinuteet GetSecond retournent -1. Auparavant, vous pouvez utiliser des dates à deux chiffres, mais les dates doivent être supérieures ou égales à 100 dans MFC 4.2 et versions ultérieures.

Pour éviter les problèmes, spécifiez une date à quatre chiffres. Par exemple :

COleDateTime mytime(1996, 1, 1, 0, 0, 0); 

Les opérations arithmétiques de base pour les COleDateTime valeurs utilisent la classe complémentaire COleDateTimeSpan. COleDateTimeSpan les valeurs définissent un intervalle de temps. La relation entre ces classes est similaire à celle entre CTime et CTimeSpan.

Pour plus d’informations sur les classes et COleDateTimeSpan les COleDateTime classes, consultez l’article Date et Heure : Support Automation.

Spécifications

En-tête : ATLComTime.h

Opérateurs relationnels COleDateTime

Opérateurs de comparaison.

bool operator==(const COleDateTime& date) const throw();
bool operator!=(const COleDateTime& date) const throw();
bool operator<(const COleDateTime& date) const throw();
bool operator>(const COleDateTime& date) const throw();
bool operator<=(const COleDateTime& date) const throw();
bool operator>=(const COleDateTime& date) const throw();

Paramètres

date
Objet COleDateTime à comparer.

Notes

Remarque

Un ATLASSERT se produit si l’un des deux opérandes n’est pas valide.

Exemples

COleDateTime dateOne(1995, 3, 15, 12, 0, 0); // 15 March 1995 12 noon
COleDateTime dateTwo(dateOne);             // 15 March 1995 12 noon
BOOL b;
b = dateOne == dateTwo;                    // TRUE
b = dateOne < dateTwo;                     // FALSE, same value
b = dateOne > dateTwo;                     // FALSE, same value
b = dateOne <= dateTwo;                    // TRUE, same value
b = dateOne >= dateTwo;                    // TRUE, same value   

dateTwo.SetStatus(COleDateTime::invalid);
b = dateOne == dateTwo;                    // FALSE, different status
b = dateOne != dateTwo;                    // TRUE, different status

Les opérateurs >=, <=, >et <, affirment si l’objet a la COleDateTime valeur Null.

VARIANT v = {};
v.vt = VT_NULL;
COleDateTime t1(v);
COleDateTime t2(v);
t1 = t1 + t2;

COleDateTime ::COleDateTime

Construit un objet COleDateTime.

COleDateTime() throw();
COleDateTime(const VARIANT& varSrc) throw();
COleDateTime(DATE dtSrc) throw();
COleDateTime(time_t timeSrc) throw();
COleDateTime(__time64_t timeSrc) throw();
COleDateTime(const SYSTEMTIME& systimeSrc) throw();
COleDateTime(const FILETIME& filetimeSrc) throw();

COleDateTime(int nYear,
    int nMonth,
    int nDay,
    int nHour,
    int nMin,
    int nSec) throw();

COleDateTime(WORD wDosDate,
    WORD wDosTime) throw();
COleDateTime(const DBTIMESTAMP& timeStamp) throw();

Paramètres

dateSrc
Objet existant COleDateTime à copier dans le nouvel COleDateTime objet.

varSrc
Structure de données existante VARIANT (éventuellement un COleVariant objet) à convertir en valeur de date/heure (VT_DATE) et copiée dans le nouvel COleDateTime objet.

dtSrc
Valeur date/heure (DATE) à copier dans le nouvel COleDateTime objet.

timeSrc
__time64_t Valeur time_t ou valeur à convertir en valeur de date/heure et copiée dans le nouvel COleDateTime objet.

systimeSrc
Structure SYSTEMTIME à convertir en valeur date/heure et copiée dans le nouvel COleDateTime objet.

filetimeSrc
Structure FILETIME à convertir en valeur date/heure et copiée dans le nouvel COleDateTime objet. Une FILETIME utilisation de l’heure utc (Universal Coordinated Time), donc si vous passez une heure locale dans la structure, vos résultats seront incorrects. Pour plus d’informations, consultez Les heures de fichier dans le Kit de développement logiciel (SDK) Windows.

nYear, nMonth, nDay, nHour, nMin, nSec
Indiquez les valeurs de date et d’heure à copier dans le nouvel COleDateTime objet.

wDosDate, wDosTime
Valeurs de date et d’heure MS-DOS à convertir en valeur date/heure et copiées dans le nouvel COleDateTime objet.

Timestamp
Référence à une structure DBTimeStamp contenant l’heure locale actuelle.

Notes

Tous ces constructeurs créent de nouveaux COleDateTime objets initialisés à la valeur spécifiée. Le tableau suivant présente des plages valides pour chaque composant de date et d’heure :

Composant date/heure Plage valide
year 100 - 9999
mois 0 - 12
day 0 - 31
hour 0 - 23
minute 0 - 59
second 0 - 59

Notez que la limite supérieure réelle pour le composant jour varie en fonction des composants mois et année. Pour plus d’informations, consultez les fonctions membres ou SetDateTime les SetDate fonctions.

Voici une brève description de chaque constructeur :

  • COleDateTime() Construit un COleDateTime objet initialisé à 0 (minuit, 30 décembre 1899).

  • COleDateTime(dateSrc) Construit un COleDateTime objet à partir d’un objet existant COleDateTime .

  • COleDateTime(varSrc) Construit un COleDateTime objet. Tente de convertir une structure ou un VARIANT objet COleVariant en valeur date/heure (VT_DATE). Si cette conversion réussit, la valeur convertie est copiée dans le nouvel COleDateTime objet. Si ce n’est pas le cas, la valeur de l’objet COleDateTime est définie sur 0 (minuit, 30 décembre 1899) et son état n’est pas valide.

  • COleDateTime(dtSrc) Construit un COleDateTime objet à partir d’une DATE valeur.

  • COleDateTime(timeSrc) Construit un COleDateTime objet à partir d’une time_t valeur.

  • COleDateTime(systimeSrc) Construit un COleDateTime objet à partir d’une SYSTEMTIME valeur.

  • COleDateTime(filetimeSrc) Construit un COleDateTime objet à partir d’une FILETIME valeur. . Une FILETIME utilisation de l’heure utc (Universal Coordinated Time), donc si vous passez une heure locale dans la structure, vos résultats seront incorrects. Pour plus d’informations, consultez Les heures de fichier dans le Kit de développement logiciel (SDK) Windows.

  • COleDateTime(nYear, , nMonth, nDay, nHour, nMin, nSec) Construit un COleDateTime objet à partir des valeurs numériques spécifiées.

  • COleDateTime(wDosDate, wDosTime) Construit un COleDateTime objet à partir des valeurs de date et d’heure MS-DOS spécifiées.

Pour plus d’informations sur le type de time_t données, consultez la fonction d’heure dans la référence de la bibliothèque d’exécution.

Pour plus d’informations, consultez les structures SYSTEMTIME et FILETIME dans le Kit de développement logiciel (SDK) Windows.

Pour plus d’informations sur les limites des COleDateTime valeurs, consultez l’article Date et Heure : Support Automation.

Remarque

Le constructeur utilisant DBTIMESTAMP le paramètre est disponible uniquement lorsque OLEDB.h est inclus.

Exemple

time_t osBinaryTime;   // C run-time time (defined in <time.h>)
time(&osBinaryTime);   // Get the current time from the 
                     // operating system.

COleDateTime time1;   // initialized to 00:00am, 30 December 1899
                     // (and m_nStatus is valid!)

COleDateTime time2 = time1; // Copy constructor
COleDateTime time3(osBinaryTime);   // from time_t
COleDateTime time4(1999, 3, 19, 22, 15, 0); // 10:15PM March 19, 1999

SYSTEMTIME sysTime;   // Win32 time information
GetSystemTime(&sysTime);

COleDateTime time5(sysTime);    

COleDateTime ::Format

Crée une représentation mise en forme de la valeur date/heure.

CString Format(DWORD dwFlags = 0,  LCID lcid = LANG_USER_DEFAULT) const;
CString Format(LPCTSTR lpszFormat) const;
CString Format(UINT nFormatID) const;

Paramètres

dwFlags
Indique l’un des indicateurs régionaux suivants :

  • LOCALE_NOUSEROVERRIDE Utiliser les paramètres régionaux système par défaut, au lieu de paramètres utilisateur personnalisés.

  • VAR_TIMEVALUEONLY Ignorer la partie de date pendant l’analyse.

  • VAR_DATEVALUEONLY Ignorer la partie de temps pendant l’analyse.

lcid
Indique l’ID de paramètres régionaux à utiliser pour la conversion. Pour plus d’informations sur les identificateurs de langue, consultez Identificateurs de langue.

lpszFormat
Chaîne de mise en forme similaire à la chaîne de printf mise en forme. Chaque code de mise en forme, précédé d’un signe pourcentage ( %) est remplacé par le composant correspondant COleDateTime . Les autres caractères de la chaîne de mise en forme sont copiés inchangés dans la chaîne retournée. Pour plus d’informations, consultez la fonction d’exécution strftime. La valeur et la signification des codes de mise en forme sont Format les suivantes :

  • %H Heures dans le jour actuel

  • %M Minutes dans l’heure actuelle

  • %S Secondes dans la minute actuelle

  • %% Signe de pourcentage

nFormatID
ID de ressource de la chaîne de contrôle de format.

Valeur de retour

Valeur CString de date/heure mise en forme.

Notes

Si l’état de cet COleDateTime objet est Null, la valeur de retour est une chaîne vide. Si l’état n’est pas valide, la chaîne de retour est spécifiée par la ressource de chaîne ATL_IDS_DATETIME_INVALID.

Voici une brève description des trois formulaires de cette fonction :

Format( dwFlags, lcid)
Ce formulaire met en forme la valeur à l’aide des spécifications de langue (ID de paramètres régionaux) pour la date et l’heure. À l’aide des paramètres par défaut, ce formulaire imprime la date et l’heure, sauf si la partie d’heure est 0 (minuit), auquel cas elle imprimera uniquement la date, ou la partie date est 0 (30 décembre 1899), auquel cas elle imprimera uniquement l’heure. Si la valeur date/heure est 0 (30 décembre 1899, minuit), ce formulaire avec les paramètres par défaut imprime minuit.

Format( lpszFormat)
Ce formulaire met en forme la valeur à l’aide de la chaîne de format qui contient des codes de mise en forme spéciaux précédés d’un signe de pourcentage (%), comme dans printf. La chaîne de mise en forme est passée en tant que paramètre à la fonction. Pour plus d’informations sur les codes de mise en forme, consultez strftime, wcsftime dans la référence de la bibliothèque d’exécution.

Format( nFormatID)
Ce formulaire met en forme la valeur à l’aide de la chaîne de format qui contient des codes de mise en forme spéciaux précédés d’un signe de pourcentage (%), comme dans printf. La chaîne de mise en forme est une ressource. L’ID de cette ressource de chaîne est passé en tant que paramètre. Pour plus d’informations sur les codes de mise en forme, consultez strftime, wcsftime dans la référence de la bibliothèque d’exécution.

Exemple

COleDateTime t(1999, 3, 19, 22, 15, 0);

CString str = t.Format(_T("%A, %B %d, %Y"));
ASSERT(str == _T("Friday, March 19, 1999"));   

COleDateTime ::GetAsDBTIMESTAMP

Appelez cette méthode pour obtenir l’heure dans l’objet COleDateTime en tant que DBTIMESTAMP structure de données.

bool GetAsDBTIMESTAMP(DBTIMESTAMP& timeStamp) const throw();

Paramètres

Timestamp
Référence à une structure DBTimeStamp .

Valeur de retour

Valeur différente de zéro cas de réussite ; sinon, 0.

Notes

Stocke l’heure résultante dans la structure timeStamp 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

COleDateTime t = COleDateTime::GetCurrentTime();
DBTIMESTAMP ts;
t.GetAsDBTIMESTAMP(ts); // retrieves the time in t into the ts structure

COleDateTime ::GetAsSystemTime

Appelez cette méthode pour obtenir l’heure dans l’objet COleDateTime en tant que SYSTEMTIME structure de données.

bool GetAsSystemTime(SYSTEMTIME& sysTime) const throw();

Paramètres

sysTime
Référence à une structure SYSTEMTIME pour recevoir la valeur de date/heure convertie de l’objet COleDateTime .

Valeur de retour

Retourne TRUE en cas de réussite ; FALSE si la conversion échoue ou si l’objet COleDateTime est NULL ou non valide.

Notes

GetAsSystemTimestocke l’heure résultante dans l’objet sysTime référencé. La SYSTEMTIME structure de données initialisée par cette fonction aura son wMilliseconds membre défini sur zéro.

Pour plus d’informations sur les informations d’état contenues dans un COleDateTime objet, consultez GetStatus.

COleDateTime ::GetAsUDATE

Appelez cette méthode pour obtenir l’heure dans l’objet COleDateTime en tant que UDATE structure de données.

bool GetAsUDATE(UDATE& uDate) const throw();

Paramètres

uDate
Référence à une UDATE structure pour recevoir la valeur de date/heure convertie de l’objet COleDateTime .

Valeur de retour

Retourne TRUE en cas de réussite ; FALSE si la conversion échoue ou si l’objet COleDateTime est NULL ou non valide.

Notes

Une UDATE structure représente une date « décompressée ».

COleDateTime ::GetCurrentTime

Appelez cette fonction membre statique pour retourner la valeur date/heure actuelle.

static COleDateTime WINAPI GetCurrentTime() throw();

Exemple

// example for COleDateTime::GetCurrentTime
COleDateTime dateTest;
   // dateTest value = midnight 30 December 1899

dateTest = COleDateTime::GetCurrentTime();
   // dateTest value = current date and time

// a second example for COleDateTime::GetCurrentTime
// Since GetCurrentTime() is a static member, you can use it in
// a constructor:

COleDateTime t1 = COleDateTime::GetCurrentTime();
COleDateTime t2(COleDateTime::GetCurrentTime());

// Or in a normal assignment operator

COleDateTime t3;
t3 = COleDateTime::GetCurrentTime();

// or even in an expression

 if (COleDateTime::GetCurrentTime().GetDayOfWeek() == 6)
    _tprintf(_T("Thank Goodness it is Friday!\n\n"));   

COleDateTime ::GetDay

Obtient le jour du mois représenté par cette valeur date/heure.

int GetDay() const throw();

Valeur de retour

Jour du mois représenté par la valeur de cet COleDateTime objet ou COleDateTime::error si le jour n’a pas pu être obtenu.

Notes

Valeurs de retour valides comprises entre 1 et 31.

Pour plus d’informations sur les autres fonctions membres qui interrogent la valeur de cet COleDateTime objet, consultez les fonctions membres suivantes :

Exemple

COleDateTime t(1999, 3, 19, 22, 15, 0);  // 10:15PM March 19, 1999
ASSERT(t.GetDay() == 19);
ASSERT(t.GetMonth() == 3);
ASSERT(t.GetYear() == 1999);   

COleDateTime ::GetDayOfWeek

Obtient le jour de la semaine représenté par cette valeur date/heure.

int GetDayOfWeek() const throw();

Valeur de retour

Jour de la semaine représenté par la valeur de cet COleDateTime objet ou COleDateTime::error si le jour de la semaine n’a pas pu être obtenu.

Notes

Les valeurs de retour valides sont comprises entre 1 et 7, où 1=Dimanche, 2=Lundi, et ainsi de suite.

Pour plus d’informations sur les autres fonctions membres qui interrogent la valeur de cet COleDateTime objet, consultez les fonctions membres suivantes :

Exemple

COleDateTime t(1999, 3, 19, 22, 15, 0); // 10:15PM March 19, 1999
ASSERT(t.GetDayOfWeek() == 6);          // it's a Friday   

COleDateTime ::GetDayOfYear

Obtient le jour de l’année représenté par cette valeur date/heure.

int GetDayOfYear() const throw();

Valeur de retour

Jour de l’année représenté par la valeur de cet COleDateTime objet ou COleDateTime::error si le jour de l’année n’a pas pu être obtenu.

Notes

Valeurs de retour valides comprises entre 1 et 366, où le 1er janvier = 1.

Pour plus d’informations sur les autres fonctions membres qui interrogent la valeur de cet COleDateTime objet, consultez les fonctions membres suivantes :

Exemple

COleDateTime t(1999, 3, 19, 22, 15, 0); // 10:15PM March 19, 1999
ASSERT(t.GetDayOfYear() == 78);         // 78th day of that year   

COleDateTime ::GetHour

Obtient l’heure représentée par cette valeur de date/heure.

int GetHour() const throw();

Valeur de retour

Heure représentée par la valeur de cet COleDateTime objet ou COleDateTime::error si l’heure n’a pas pu être obtenue.

Notes

Valeurs de retour valides comprises entre 0 et 23.

Pour plus d’informations sur les autres fonctions membres qui interrogent la valeur de cet COleDateTime objet, consultez les fonctions membres suivantes :

Exemple

COleDateTime t(1999, 3, 19, 22, 15, 0);  // 10:15PM March 19, 1999
ASSERT(t.GetSecond() == 0);
ASSERT(t.GetMinute() == 15);
ASSERT(t.GetHour() == 22);   

COleDateTime ::GetMinute

Obtient la minute représentée par cette valeur de date/heure.

int GetMinute() const throw();

Valeur de retour

Minute représentée par la valeur de cet COleDateTime objet ou COleDateTime::error si la minute n’a pas pu être obtenue.

Notes

Valeurs de retour valides comprises entre 0 et 59.

Pour plus d’informations sur les autres fonctions membres qui interrogent la valeur de cet COleDateTime objet, consultez les fonctions membres suivantes :

Exemple

Consultez l’exemple de GetHour.

COleDateTime ::GetMonth

Obtient le mois représenté par cette valeur de date/heure.

int GetMonth() const throw();

Valeur de retour

Mois représenté par la valeur de cet COleDateTime objet ou COleDateTime::error si le mois n’a pas pu être obtenu.

Notes

Valeurs de retour valides comprises entre 1 et 12.

Pour plus d’informations sur les autres fonctions membres qui interrogent la valeur de cet COleDateTime objet, consultez les fonctions membres suivantes :

Exemple

Consultez l’exemple de GetDay.

COleDateTime ::GetSecond

Obtient la deuxième représentée par cette valeur de date/heure.

int GetSecond() const throw();

Valeur de retour

Deuxième représentée par la valeur de cet COleDateTime objet ou COleDateTime::error si la seconde n’a pas pu être obtenue.

Notes

Valeurs de retour valides comprises entre 0 et 59.

Remarque

La COleDateTime classe ne prend pas en charge les secondes bissextiles.

Pour plus d’informations sur l’implémentation, COleDateTimeconsultez l’article Date et heure : Support Automation.

Pour plus d’informations sur les autres fonctions membres qui interrogent la valeur de cet COleDateTime objet, consultez les fonctions membres suivantes :

Exemple

Consultez l’exemple de GetHour.

COleDateTime ::GetStatus

Obtient l’état (validité) d’un objet donné COleDateTime .

DateTimeStatus GetStatus() const throw();

Valeur de retour

Retourne l’état de cette COleDateTime valeur. Si vous appelez GetStatus un COleDateTime objet construit avec la valeur par défaut, il retourne valide. Si vous appelez GetStatus un COleDateTime objet initialisé avec le constructeur défini sur Null, GetStatus retourne la valeur Null.

Notes

La valeur de retour est définie par le DateTimeStatus type énuméré, qui est défini dans la COleDateTime classe.

enum DateTimeStatus
{
   error = -1,
   valid = 0,
   invalid = 1,    // Invalid date (out of range, etc.)
   null = 2,       // Literally has no value
};

Pour obtenir une brève description de ces valeurs d’état, consultez la liste suivante :

  • COleDateTime::error Indique qu’une erreur s’est produite lors de la tentative d’obtention d’une partie de la valeur date/heure.

  • COleDateTime::valid Indique que cet COleDateTime objet est valide.

  • COleDateTime::invalid Indique que cet COleDateTime objet n’est pas valide ; autrement dit, sa valeur peut être incorrecte.

  • COleDateTime::null Indique que cet COleDateTime objet est null, autrement dit qu’aucune valeur n’a été fournie pour cet objet. (Il s’agit de « null » dans le sens de la base de données d'« avoir aucune valeur », par opposition à la valeur NULL C++.)

L’état d’un COleDateTime objet n’est pas valide dans les cas suivants :

  • Si sa valeur est définie à partir d’une ou COleVariant d’une VARIANT valeur qui n’a pas pu être convertie en valeur date/heure.

  • Si sa valeur est définie à partir d’un time_t, SYSTEMTIMEou FILETIME d’une valeur qui n’a pas pu être convertie en valeur de date/heure valide.

  • Si sa valeur est définie avec SetDateTime des valeurs de paramètre non valides.

  • Si cet objet a connu un dépassement de capacité ou un sous-flux pendant une opération d’affectation arithmétique, à savoir, += ou -=.

  • Si une valeur non valide a été affectée à cet objet.

  • Si l’état de cet objet a été défini explicitement sur non valide à l’aide SetStatusde .

Pour plus d’informations sur les opérations qui peuvent définir l’état sur non valide, consultez les fonctions membres suivantes :

Pour plus d’informations sur les limites des COleDateTime valeurs, consultez l’article Date et Heure : Support Automation.

Exemple

COleDateTime t;

// this one is a leap year
t.SetDateTime(2000, 2, 29, 5, 0, 0);
ASSERT(t.GetStatus() == COleDateTime::valid);

// this date isn't valid
t.SetDateTime(1925, 2, 30, 5, 0, 0);
ASSERT(t.GetStatus() == COleDateTime::invalid);

// the only way to set null is to set null!
t.SetStatus(COleDateTime::null);
ASSERT(t.GetStatus() == COleDateTime::null);   

COleDateTime ::GetYear

Obtient l’année représentée par cette valeur date/heure.

int GetYear() const throw();

Valeur de retour

Année représentée par la valeur de cet COleDateTime objet ou COleDateTime::error si l’année n’a pas pu être obtenue.

Notes

Valeurs de retour valides comprises entre 100 et 9999, qui comprend le siècle.

Pour plus d’informations sur les autres fonctions membres qui interrogent la valeur de cet COleDateTime objet, consultez les fonctions membres suivantes :

Pour plus d’informations sur les limites des COleDateTime valeurs, consultez l’article Date et Heure : Support Automation.

Exemple

Consultez l’exemple de GetDay.

COleDateTime ::m_dt

Structure sous-jacente DATE de cet COleDateTime objet.

DATE m_dt;

Notes

Attention

La modification de la valeur dans l’objet DATE accessible par le pointeur retourné par cette fonction modifie la valeur de cet COleDateTime objet. Il ne modifie pas l’état de cet COleDateTime objet.

Pour plus d’informations sur l’implémentation de l’objet DATE , consultez l’article Date et heure : Support Automation.

COleDateTime ::m_status

Contient l’état de cet COleDateTime objet.

DateTimeStatus m_status;

Notes

Le type de ce membre de données est le type DateTimeStatusénuméré, qui est défini dans la COleDateTime classe. Pour plus d’informations, consultez COleDateTime ::GetStatus.

Attention

Ce membre de données est destiné aux situations de programmation avancées. Vous devez utiliser les fonctions membres inline GetStatus et SetStatus. Pour plus d’informations sur la définition explicite de ce membre de données, consultez SetStatus les avertissements.

COleDateTime ::operator =

Copie une COleDateTime valeur.

COleDateTime& operator=(const VARIANT& varSrc) throw();
COleDateTime& operator=(DATE dtSrc) throw();
COleDateTime& operator=(const time_t& timeSrc) throw();
COleDateTime& operator=(const __time64_t& timeSrc) throw();
COleDateTime& operator=(const SYSTEMTIME& systimeSrc) throw();
COleDateTime& operator=(const FILETIME& filetimeSrc) throw();
COleDateTime& operator=(const UDATE& uDate) throw();

Notes

Ces opérateurs d’affectation surchargés copient la valeur de date/heure source dans cet COleDateTime objet. Voici une brève description de chacun de ces opérateurs d’affectation surchargés :

  • operator =(dateSrc) La valeur et l’état de l’opérande sont copiés dans cet COleDateTime objet.

  • operator =(varSrc) Si la conversion de la valeur VARIANT (ou de l’objet COleVariant) en date/heure (VT_DATE) réussit, la valeur convertie est copiée dans cet COleDateTime objet et son état est défini sur valide. Si la conversion ne réussit pas, la valeur de cet objet est définie sur zéro (30 décembre 1899, minuit) et son état n’est pas valide.

  • operator =(dtSrc) La DATE valeur est copiée dans cet COleDateTime objet et son état est défini sur valide.

  • operator =(timeSrc) The time_t or __time64_t value is converted and copied into this COleDateTime object. Si la conversion réussit, l’état de cet objet est défini sur valide ; si elle échoue, elle est définie sur non valide.

  • operator =(systimeSrc) La valeur SYSTEMTIME est convertie et copiée dans cet COleDateTime objet. Si la conversion réussit, l’état de cet objet est défini sur valide ; si elle échoue, elle est définie sur non valide.

  • operator =(uDate) La UDATE valeur est convertie et copiée dans cet COleDateTime objet. Si la conversion réussit, l’état de cet objet est défini sur valide ; si elle échoue, elle est définie sur non valide. Une UDATE structure représente une date « décompressée ». Pour plus d’informations, consultez la fonction VarDateFromUdate.

  • operator =(filetimeSrc) La valeur FILETIME est convertie et copiée dans cet COleDateTime objet. Si la conversion réussit, l’état de cet objet est défini sur valide ; sinon, elle est définie sur non valide. FILETIME utilise l’heure UTC (Universal Coordinated Time), de sorte que si vous passez une heure UTC dans la structure, vos résultats seront convertis de l’heure UTC à l’heure locale et seront stockés en tant qu’heure de variante. Ce comportement est le même que dans Visual C++ 6.0 et Visual C++.NET 2003 SP2. Pour plus d’informations, consultez Les heures de fichier dans le Kit de développement logiciel (SDK) Windows.

Pour plus d’informations, consultez l’entrée VARIANT dans le Kit de développement logiciel (SDK) Windows.

Pour plus d’informations sur le type de time_t données, consultez la fonction d’heure dans la référence de la bibliothèque d’exécution.

Pour plus d’informations, consultez les structures SYSTEMTIME et FILETIME dans le Kit de développement logiciel (SDK) Windows.

Pour plus d’informations sur les limites des COleDateTime valeurs, consultez l’article Date et Heure : Support Automation.

COleDateTime ::operator +, -

Ajouter et soustraire des ColeDateTime valeurs.

COleDateTime operator+(COleDateTimeSpan dateSpan) const throw();
COleDateTime operator-(COleDateTimeSpan dateSpan) const throw();
COleDateTimeSpan operator-(const COleDateTime& date) const throw();

Notes

COleDateTime les objets représentent des heures absolues. Les objets COleDateTimeSpan représentent des heures relatives. Les deux premiers opérateurs vous permettent d’ajouter et de soustraire une COleDateTimeSpan valeur d’une COleDateTime valeur. Le troisième opérateur vous permet de soustraire une valeur d’une COleDateTime autre pour générer une COleDateTimeSpan valeur.

Si l’un des opérandes a la valeur Null, l’état de la valeur résultante COleDateTime est Null.

Si la valeur résultante COleDateTime se trouve en dehors des limites des valeurs acceptables, l’état de cette COleDateTime valeur n’est pas valide.

Si l’un des opérandes n’est pas valide et que l’autre n’est pas null, l’état de la valeur résultante COleDateTime n’est pas valide.

Les + opérateurs et - les opérateurs affirment si l’objet COleDateTime a la valeur Null. Consultez les opérateurs relationnels COleDateTime pour obtenir un exemple.

Pour plus d’informations sur les valeurs d’état valides, non valides et null, consultez la variable membre m_status .

Pour plus d’informations sur les limites des COleDateTime valeurs, consultez l’article Date et Heure : Support Automation.

Exemple

COleDateTime t1(1999, 3, 19, 22, 15, 0); // 10:15PM March 19, 1999
COleDateTime t2(1999, 3, 20, 22, 15, 0); // 10:15PM March 20, 1999

// Subtract 2 COleDateTimes
COleDateTimeSpan ts = t2 - t1;

// one day is 24 * 60 * 60 == 86400 seconds
ASSERT(ts.GetTotalSeconds() == 86400L);

// Add a COleDateTimeSpan to a COleDateTime.
ASSERT((t1 + ts) == t2);

// Subtract a COleDateTimeSpan from a COleDateTime.
ASSERT((t2 - ts) == t1);   

COleDateTime ::operator +=, -=

Ajoutez et soustrait une ColeDateTime valeur de cet COleDateTime objet.

COleDateTime& operator+=(COleDateTimeSpan dateSpan) throw();
COleDateTime& operator-=(COleDateTimeSpan dateSpan) throw();

Notes

Ces opérateurs vous permettent d’ajouter et de soustraire une COleDateTimeSpan valeur à et à partir de cela COleDateTime. Si l’un des opérandes a la valeur Null, l’état de la valeur résultante COleDateTime est Null.

Si la valeur résultante COleDateTime se trouve en dehors des limites des valeurs acceptables, l’état de cette COleDateTime valeur est défini sur non valide.

Si l’un des opérandes n’est pas valide et que l’autre n’est pas null, l’état de la valeur résultante COleDateTime n’est pas valide.

Pour plus d’informations sur les valeurs d’état valides, non valides et null, consultez la variable membre m_status .

Les += opérateurs et -= les opérateurs affirment si l’objet COleDateTime a la valeur Null. Consultez les opérateurs relationnels COleDateTime pour obtenir un exemple.

Pour plus d’informations sur les limites des COleDateTime valeurs, consultez l’article Date et Heure : Support Automation.

COleDateTime ::operator DATE

Convertit une ColeDateTime valeur en un DATE.

operator DATE() const throw();

Notes

Cet opérateur retourne un DATE objet dont la valeur est copiée à partir de cet COleDateTime objet. Pour plus d’informations sur l’implémentation de l’objet DATE , consultez l’article Date et heure : Support Automation.

L’opérateur DATE affirme si l’objet a la COleDateTime valeur Null. Consultez les opérateurs relationnels COleDateTime pour obtenir un exemple.

COleDateTime ::P arseDateTime

Analyse une chaîne pour lire une valeur de date/heure.

bool ParseDateTime(
    LPCTSTR lpszDate,
    DWORD dwFlags = 0,
    LCID lcid = LANG_USER_DEFAULT) throw();

Paramètres

lpszDate
Pointeur vers la chaîne terminée par null qui doit être analysée. Pour plus d'informations, consultez Notes.

dwFlags
Indique des indicateurs pour les paramètres régionaux et l’analyse. Un ou plusieurs des indicateurs suivants :

  • LOCALE_NOUSEROVERRIDE Utiliser les paramètres régionaux par défaut du système, plutôt que les paramètres utilisateur personnalisés.

  • VAR_TIMEVALUEONLY Ignorer la partie de date pendant l’analyse.

  • VAR_DATEVALUEONLY Ignorer la partie de temps pendant l’analyse.

lcid
Indique l’ID de paramètres régionaux à utiliser pour la conversion.

Valeur de retour

Retourne TRUE si la chaîne a été correctement convertie en valeur date/heure, sinon FALSE.

Notes

Si la chaîne a été correctement convertie en valeur date/heure, la valeur de cet objet est définie sur cette COleDateTime valeur et son état sur valide.

Remarque

Les valeurs de l’année doivent être comprises entre 100 et 9999, inclusivement.

Le paramètre lpszDate peut prendre plusieurs formats. Par exemple, les chaînes suivantes contiennent des formats de date/heure acceptables :

"25 January 1996"

"8:30:00"

"20:30:00"

"January 25, 1996 8:30:00"

"8:30:00 Jan. 25, 1996"

"1/25/1996 8:30:00" // always specify the full year, even in a 'short date' format

L’ID de paramètres régionaux affecte également si le format de chaîne est acceptable pour la conversion en valeur de date/heure.

Dans le cas de VAR_DATEVALUEONLY, la valeur d’heure est définie sur l’heure 0 ou minuit. Dans le cas de VAR_TIMEVALUEONLY, la valeur de date est définie sur la date 0, ce qui signifie le 30 décembre 1899.

Si la chaîne n’a pas pu être convertie en valeur date/heure ou en cas de dépassement numérique, l’état de cet COleDateTime objet n’est pas valide.

Pour plus d’informations sur les limites et l’implémentation des COleDateTime valeurs, consultez l’article Date et heure : Support Automation.

COleDateTime ::SetDate

Définit la date de cet COleDateTime objet.

int SetDate(
    int nYear,
    int nMonth,
    int nDay) throw();

Paramètres

nYear
Indique l’année à copier dans cet COleDateTime objet.

nMonth
Indique le mois à copier dans cet COleDateTime objet.

nDay
Indique le jour à copier dans cet COleDateTime objet.

Valeur de retour

Zéro si la valeur de cet COleDateTime objet a été définie correctement ; sinon, 1. Cette valeur de retour est basée sur le DateTimeStatus type énuméré. Pour plus d’informations, consultez la fonction membre SetStatus .

Notes

La date est définie sur les valeurs spécifiées. L’heure est définie à l’heure 0, minuit.

Consultez le tableau suivant pour connaître les limites des valeurs de paramètre :

Paramètre Bounds
nYear 100 - 9999
nMonth 1 - 12
nDay 0 - 31

Si le jour du mois dépasse, il est converti en jour correct du mois suivant et le mois et/ou l’année est incrémenté en conséquence. Une valeur de jour de zéro indique le dernier jour du mois précédent. Le comportement est le même que SystemTimeToVariantTime.

Si la valeur de date spécifiée par les paramètres n’est pas valide, l’état de cet objet est défini sur COleDateTime::invalid. Vous devez utiliser GetStatus pour case activée la validité de la DATE valeur et ne doit pas supposer que la valeur de m_dt reste inchangée.

Voici quelques exemples de valeurs de date :

nYear nMonth nDay Value
2000 2 29 29 février 2000
1776 7 4 4 juillet 1776
1925 4 35 35 avril 1925 (date non valide)
10000 1 1 1er janvier 10000 (date non valide)

Pour définir à la fois la date et l’heure, consultez COleDateTime ::SetDateTime.

Pour plus d’informations sur les fonctions membres qui interrogent la valeur de cet COleDateTime objet, consultez les fonctions membres suivantes :

Pour plus d’informations sur les limites des COleDateTime valeurs, consultez l’article Date et Heure : Support Automation.

Exemple

// set only the date, time set to midnight
dt.SetDate(1999, 3, 19);
ASSERT(dt.GetYear() == 1999);
ASSERT(dt.GetDay() == 19);
ASSERT(dt.GetMonth() == 3);
ASSERT(dt.GetHour() == 0);
ASSERT(dt.GetMinute() == 0);
ASSERT(dt.GetSecond() == 0);

// setting the time only resets the date to 1899!
dt.SetTime(22, 15, 0);
ASSERT(dt.GetYear() == 1899);
ASSERT(dt.GetDay() == 30);
ASSERT(dt.GetMonth() == 12);
ASSERT(dt.GetHour() == 22);
ASSERT(dt.GetMinute() == 15);
ASSERT(dt.GetSecond() == 0);   

COleDateTime ::SetDateTime

Définit la date et l’heure de cet COleDateTime objet.

int SetDateTime(
    int nYear,
    int nMonth,
    int nDay,
    int nHour,
    int nMin,
    int nSec) throw();

Paramètres

nYear, nMonth, nDay, nHour, nMin, nSec
Indiquez les composants de date et d’heure à copier dans cet COleDateTime objet.

Valeur de retour

Zéro si la valeur de cet COleDateTime objet a été définie correctement ; sinon, 1. Cette valeur de retour est basée sur le DateTimeStatus type énuméré. Pour plus d’informations, consultez la fonction membre SetStatus .

Notes

Consultez le tableau suivant pour connaître les limites des valeurs de paramètre :

Paramètre Bounds
nYear 100 - 9999
nMonth 1 - 12
nDay 0 - 31
nHour 0 - 23
Nmin 0 - 59
nSec 0 - 59

Si le jour du mois dépasse, il est converti en jour correct du mois suivant et le mois et/ou l’année est incrémenté en conséquence. Une valeur de jour de zéro indique le dernier jour du mois précédent. Le comportement est identique à SystemTimeToVariantTime.

Si la valeur de date ou d’heure spécifiée par les paramètres n’est pas valide, l’état de cet objet est défini sur non valide et la valeur de cet objet n’est pas modifiée.

Voici quelques exemples de valeurs temporelles :

nHour Nmin nSec Value
1 3 3 01:03:03
23 45 0 23:45:00
25 30 0 Non valide
9 60 0 Non valide

Voici quelques exemples de valeurs de date :

nYear nMonth nDay Value
1995 4 15 15 avril 1995
1789 7 14 17 juillet 1789
1925 2 30 Non valide
10000 1 1 Non valide

Pour définir la date uniquement, consultez COleDateTime ::SetDate. Pour définir l’heure uniquement, consultez COleDateTime ::SetTime.

Pour plus d’informations sur les fonctions membres qui interrogent la valeur de cet COleDateTime objet, consultez les fonctions membres suivantes :

Pour plus d’informations sur les limites des COleDateTime valeurs, consultez l’article Date et Heure : Support Automation.

Exemple

Consultez l’exemple de GetStatus.

COleDateTime ::SetStatus

Définit l’état de cet COleDateTime objet.

void SetStatus(DateTimeStatus status) throw();

Paramètres

statut
Nouvelle valeur d’état pour cet COleDateTime objet.

Notes

La valeur du paramètre d’état est définie par le DateTimeStatus type énuméré, qui est défini dans la COleDateTime classe. Pour plus d’informations, consultez COleDateTime ::GetStatus .

Attention

Cette fonction est destinée aux situations de programmation avancées. Cette fonction ne modifie pas les données de cet objet. Il sera le plus souvent utilisé pour définir l’état sur Null ou non valide. L’opérateur d’affectation (operator =) et SetDateTime définissent l’état de l’objet en fonction de la ou des valeurs sources.

Exemple

Consultez l’exemple de GetStatus.

COleDateTime ::SetTime

Définit l’heure de cet COleDateTime objet.

int SetTime(
    int nHour,
    int nMin,
    int nSec) throw();

Paramètres

nHour, nMin, nSec
Indiquez les composants de temps à copier dans cet COleDateTime objet.

Valeur de retour

Zéro si la valeur de cet COleDateTime objet a été définie correctement ; sinon, 1. Cette valeur de retour est basée sur le DateTimeStatus type énuméré. Pour plus d’informations, consultez la fonction membre SetStatus .

Notes

L’heure est définie sur les valeurs spécifiées. La date est fixée à la date 0, ce qui signifie le 30 décembre 1899.

Consultez le tableau suivant pour connaître les limites des valeurs de paramètre :

Paramètre Bounds
nHour 0 - 23
Nmin 0 - 59
nSec 0 - 59

Si la valeur de temps spécifiée par les paramètres n’est pas valide, l’état de cet objet est défini sur non valide et la valeur de cet objet n’est pas modifiée.

Voici quelques exemples de valeurs temporelles :

nHour Nmin nSec Value
1 3 3 01:03:03
23 45 0 23:45:00
25 30 0 Non valide
9 60 0 Non valide

Pour définir à la fois la date et l’heure, consultez COleDateTime ::SetDateTime.

Pour plus d’informations sur les fonctions membres qui interrogent la valeur de cet COleDateTime objet, consultez les fonctions membres suivantes :

Pour plus d’informations sur les limites des COleDateTime valeurs, consultez l’article Date et Heure : Support Automation.

Exemple

Consultez l’exemple de SetDate.

Voir aussi

COleVariant, classe
CTime, classe
CTimeSpan, classe
Graphique hiérarchique
Classes partagées ATL/MFC