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 COleDateTime UDATE 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 | Valeur |
---|---|
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
, GetDay
GetHour
, GetMinute
et 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.
horodatage
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 unCOleDateTime
objet initialisé à 0 (minuit, 30 décembre 1899).COleDateTime(
dateSrc
) Construit unCOleDateTime
objet à partir d’un objet existantCOleDateTime
.COleDateTime(
varSrc ) Construit unCOleDateTime
objet. Tente de convertir une structure ou unVARIANT
objet COleVariant en valeur date/heure (VT_DATE
). Si cette conversion réussit, la valeur convertie est copiée dans le nouvelCOleDateTime
objet. Si ce n’est pas le cas, la valeur de l’objetCOleDateTime
est définie sur 0 (minuit, 30 décembre 1899) et son état n’est pas valide.COleDateTime(
dtSrc
) Construit unCOleDateTime
objet à partir d’uneDATE
valeur.COleDateTime(
timeSrc
) Construit unCOleDateTime
objet à partir d’unetime_t
valeur.COleDateTime(
systimeSrc ) Construit unCOleDateTime
objet à partir d’uneSYSTEMTIME
valeur.COleDateTime(
filetimeSrc
) Construit unCOleDateTime
objet à partir d’uneFILETIME
valeur. . UneFILETIME
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 unCOleDateTime
objet à partir des valeurs numériques spécifiées.COleDateTime(
wDosDate
,wDosTime
) Construit unCOleDateTime
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
horodatage
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
GetAsSystemTime
stocke 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, COleDateTime
consultez 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 cetCOleDateTime
objet est valide.COleDateTime::invalid
Indique que cetCOleDateTime
objet n’est pas valide ; autrement dit, sa valeur peut être incorrecte.COleDateTime::null
Indique que cetCOleDateTime
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’uneVARIANT
valeur qui n’a pas pu être convertie en valeur date/heure.Si sa valeur est définie à partir d’un
time_t
,SYSTEMTIME
ouFILETIME
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
SetStatus
de .
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 cetCOleDateTime
objet.operator =( varSrc ) Si la conversion de la valeur VARIANT (ou 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
) LaDATE
valeur est copiée dans cetCOleDateTime
objet et son état est défini sur valide.operator =(
timeSrc
) L’ou__time64_t
latime_t
valeur est convertie et copiée dans cetCOleDateTime
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 =( 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
) LaUDATE
valeur est convertie et copiée dans cetCOleDateTime
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. UneUDATE
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 cetCOleDateTime
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 vérifier 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 | Valeur |
---|---|---|---|
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 | Valeur |
---|---|---|---|
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 | Valeur |
---|---|---|---|
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 | Valeur |
---|---|---|---|
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