COleDateTimeSpan, classe
Représente un temps relatif, un intervalle de temps.
Syntaxe
class COleDateTimeSpan
Membres
Constructeurs publics
Nom | Description |
---|---|
COleDateTimeSpan ::COleDateTimeSpan | Construit un objet COleDateTimeSpan . |
Méthodes publiques
Nom | Description |
---|---|
COleDateTimeSpan ::Format | Génère une représentation sous forme de chaîne d’un COleDateTimeSpan objet. |
COleDateTimeSpan ::GetDays | Retourne la partie jour de l’étendue que cet COleDateTimeSpan objet représente. |
COleDateTimeSpan ::GetHours | Retourne la partie heure de l’étendue que cet COleDateTimeSpan objet représente. |
COleDateTimeSpan ::GetMinutes | Retourne la partie minute de l’étendue que cet COleDateTimeSpan objet représente. |
COleDateTimeSpan ::GetSeconds | Retourne la deuxième partie de l’étendue que cet COleDateTimeSpan objet représente. |
COleDateTimeSpan ::GetStatus | Obtient l’état (validité) de cet COleDateTimeSpan objet. |
COleDateTimeSpan ::GetTotalDays | Retourne le nombre de jours que cet COleDateTimeSpan objet représente. |
COleDateTimeSpan ::GetTotalHours | Retourne le nombre d’heures que cet COleDateTimeSpan objet représente. |
COleDateTimeSpan ::GetTotalMinutes | Retourne le nombre de minutes que cet COleDateTimeSpan objet représente. |
COleDateTimeSpan ::GetTotalSeconds | Retourne le nombre de secondes que cet COleDateTimeSpan objet représente. |
COleDateTimeSpan ::SetDateTimeSpan | Définit la valeur de cet COleDateTimeSpan objet. |
COleDateTimeSpan ::SetStatus | Définit l’état (validité) de cet COleDateTimeSpan objet. |
Opérateurs publics
Nom | Description |
---|---|
opérateur +, - | Ajoutez, soustraitz et modifiez le signe pour les COleDateTimeSpan valeurs. |
operator +=, -= | Ajoutez et soustraitz une COleDateTimeSpan valeur de cette COleDateTimeSpan valeur. |
operator = | Copie une COleDateTimeSpan valeur. |
operator ==, , <<= | Comparez deux COleDateTimeSpan valeurs. |
operateur double | Convertit cette COleDateTimeSpan valeur en double . |
Membres de données publics
Nom | Description |
---|---|
COleDateTimeSpan ::m_span | Contient le sous-jacent double de cet COleDateTimeSpan objet. |
COleDateTimeSpan ::m_status | Contient l’état de cet COleDateTimeSpan objet. |
Notes
COleDateTimeSpan
n’a pas de classe de base.
Un COleDateTimeSpan
temps est conservé en jours.
COleDateTimeSpan
est utilisé avec sa classe complémentaire COleDateTime. COleDateTime
encapsule le DATE
type de données d’automatisation OLE. COleDateTime
représente les valeurs temporelles absolues. Tous les COleDateTime
calculs impliquent COleDateTimeSpan
des valeurs. La relation entre ces classes est analogue à 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 COleDateTimeSpan
Opérateurs de comparaison.
bool operator==(const COleDateTimeSpan& dateSpan) const throw();
bool operator!=(const COleDateTimeSpan& dateSpan) const throw();
bool operator<(const COleDateTimeSpan& dateSpan) const throw();
bool operator>(const COleDateTimeSpan& dateSpan) const throw();
bool operator<=(const COleDateTimeSpan& dateSpan) const throw();
bool operator>=(const COleDateTimeSpan& dateSpan) const throw();
Paramètres
dateSpan
COleDateTimeSpan
à comparer.
Valeur de retour
Ces opérateurs comparent deux valeurs d’intervalle de date/heure et retournent TRUE si la condition est vraie ; sinon FALSE.
Notes
Remarque
Un ATLASSERT se produit si l’un des opérandes n’est pas valide.
Exemple
COleDateTimeSpan spanOne(3, 12, 0, 0); // 3 days and 12 hours
COleDateTimeSpan spanTwo(spanOne); // 3 days and 12 hours
BOOL b;
b = spanOne == spanTwo; // TRUE
b = spanOne < spanTwo; // FALSE, same value
b = spanOne > spanTwo; // FALSE, same value
b = spanOne <= spanTwo; // TRUE, same value
b = spanOne >= spanTwo; // TRUE, same value
spanTwo.SetStatus(COleDateTimeSpan::invalid);
b = spanOne == spanTwo; // FALSE, different status
b = spanOne != spanTwo; // TRUE, different status
COleDateTimeSpan ts1(100.0); // one hundred days
COleDateTimeSpan ts2(110.0); // ten more days
ASSERT((ts1 != ts2) && (ts1 < ts2) && (ts1 <= ts2));
COleDateTimeSpan ::COleDateTimeSpan
Construit un objet COleDateTimeSpan
.
COleDateTimeSpan() throw();
COleDateTimeSpan(double dblSpanSrc) throw();
COleDateTimeSpan(LONG lDays, int nHours, int nMins, int nSecs) throw();
Paramètres
dblSpanSrc
Nombre de jours à copier dans le nouvel COleDateTimeSpan
objet.
lDays, nHours, nMins, nSecs
Indiquez les valeurs de jour et d’heure à copier dans le nouvel COleDateTimeSpan
objet.
Notes
Tous ces constructeurs créent de nouveaux COleDateTimeSpan
objets initialisés à la valeur spécifiée. Voici une brève description de chacun de ces constructeurs :
COleDateTimeSpan( ) Construit un
COleDateTimeSpan
objet initialisé sur 0.COleDateTimeSpan(
dblSpanSrc
) Construit unCOleDateTimeSpan
objet à partir d’une valeur à virgule flottante.COleDateTimeSpan(
lDays
, ,nMins
nHours
,nSecs
) Construit unCOleDateTimeSpan
objet initialisé avec les valeurs numériques spécifiées.
L’état du nouvel COleDateTimeSpan
objet est défini sur valide.
Pour plus d’informations sur les limites des COleDateTimeSpan
valeurs, consultez l’article Date et Heure : Support Automation.
Exemple
COleDateTimeSpan spanOne(2.75); // 2 days and 18 hours
COleDateTimeSpan spanTwo(2, 18, 0, 0); // 2 days and 18 hours
COleDateTimeSpan spanThree(3, -6, 0, 0); // 2 days and 18 hours
COleDateTimeSpan ts1; // Uninitialized time value
COleDateTimeSpan ts2a(ts1); // Copy constructor
COleDateTimeSpan ts2b = ts1; // Copy constructor again
COleDateTimeSpan ts3(100.0); // 100 days
COleDateTimeSpan ts4(0, 1, 5, 12); // 1 hour, 5 minutes, and 12 seconds
COleDateTimeSpan ::Format
Génère une représentation sous forme de chaîne d’un COleDateTimeSpan
objet.
CString Format(LPCTSTR pFormat) const;
CString Format(UINT nID) const;
Paramètres
pFormat
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 COleDateTimeSpan
. Les autres caractères de la chaîne de mise en forme sont copiés inchangés dans la chaîne retournée. La valeur et la signification des codes de mise en forme sont Format
répertoriées ci-dessous :
%H Heures dans le jour actuel
%M Minutes dans l’heure actuelle
%S Secondes dans la minute actuelle
%% Signe de pourcentage
Les quatre codes de format répertoriés ci-dessus sont les seuls codes que format acceptera.
-
nID
ID de ressource de la chaîne de contrôle de format.
Valeur de retour
Valeur CString
d’intervalle de date/heure mise en forme.
Notes
Appelez ces fonctions pour créer une représentation mise en forme de la valeur d’intervalle de temps. Si l’état de cet COleDateTimeSpan
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 IDS_INVALID_DATETIMESPAN.
Voici une brève description des formulaires pour cette fonction :
Format( pFormat )
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.
Format( nID )
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.
Exemple
// get the current time
COleDateTime tmStart = COleDateTime::GetCurrentTime();
// waste some time
CString str;
::Sleep(3000);
// get the current time again
COleDateTime tmFinish = COleDateTime::GetCurrentTime();
// find the difference
COleDateTimeSpan tmSpan = tmFinish - tmStart;
// tell the user
str = tmSpan.Format(_T("%S seconds elapsed"));
_tprintf_s(_T("%s\n"), (LPCTSTR) str);
COleDateTimeSpan ::GetDays
Récupère la partie jour de cette valeur d’intervalle de date/heure.
LONG GetDays() const throw();
Valeur de retour
Partie jour de cette valeur d’intervalle de date/heure.
Notes
Les valeurs de retour de cette plage de fonctions comprises entre environ - 3 615 000 et 3 615 000.
Pour les autres fonctions qui interrogent la valeur d’un COleDateTimeSpan
objet, consultez les fonctions membres suivantes :
Exemple
COleDateTimeSpan ts(3, 1, 5, 12); // 3 days, 1 hour, 5 min, and 12 sec
ASSERT(ts.GetDays() == 3);
COleDateTimeSpan ::GetHours
Récupère la partie heure de cette valeur d’intervalle de date/heure.
LONG GetHours() const throw();
Valeur de retour
Partie heures de cette valeur d’intervalle de date/heure.
Notes
Valeurs de retour de cette plage de fonctions comprises entre - 23 et 23.
Pour les autres fonctions qui interrogent la valeur d’un COleDateTimeSpan
objet, consultez les fonctions membres suivantes :
Exemple
COleDateTimeSpan ts(3, 1, 5, 12); // 3 days, 1 hour, 5 min, and 12 sec
ASSERT(ts.GetHours() == 1);
COleDateTimeSpan ::GetMinutes
Récupère la partie minute de cette valeur d’intervalle de date/heure.
LONG GetMinutes() const throw();
Valeur de retour
Partie minutes de cette valeur d’intervalle de date/heure.
Notes
Valeurs de retour de cette plage de fonctions comprises entre - 59 et 59.
Pour les autres fonctions qui interrogent la valeur d’un COleDateTimeSpan
objet, consultez les fonctions membres suivantes :
Exemple
COleDateTimeSpan ts(3, 1, 5, 12); // 3 days, 1 hour, 5 min, and 12 sec
ASSERT(ts.GetMinutes() == 5);
COleDateTimeSpan ::GetSeconds
Récupère la deuxième partie de cette valeur d’intervalle de date/heure.
LONG GetSeconds() const throw();
Valeur de retour
Partie secondes de cette valeur d’intervalle de date/heure.
Notes
Valeurs de retour de cette plage de fonctions comprises entre - 59 et 59.
Pour les autres fonctions qui interrogent la valeur d’un COleDateTimeSpan
objet, consultez les fonctions membres suivantes :
Exemple
COleDateTimeSpan ts(3, 1, 5, 12); // 3 days, 1 hour, 5 min, and 12 sec
ASSERT(ts.GetSeconds() == 12);
COleDateTimeSpan ::GetStatus
Obtient l’état (validité) de cet COleDateTimeSpan
objet.
DateTimeSpanStatus GetStatus() const throw();
Valeur de retour
État de cette COleDateTimeSpan
valeur.
Notes
La valeur de retour est définie par le DateTimeSpanStatus
type énuméré, qui est défini dans la COleDateTimeSpan
classe.
enum DateTimeSpanStatus{
valid = 0,
invalid = 1,
null = 2,
};
Pour obtenir une brève description de ces valeurs d’état, consultez la liste suivante :
COleDateTimeSpan::valid
Indique que cetCOleDateTimeSpan
objet est valide.COleDateTimeSpan::invalid
Indique que cetCOleDateTimeSpan
objet n’est pas valide ; autrement dit, sa valeur peut être incorrecte.COleDateTimeSpan::null
Indique que cetCOleDateTimeSpan
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 COleDateTimeSpan
objet n’est pas valide dans les cas suivants :
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 COleDateTimeSpan ::operator +, - et COleDateTimeSpan ::operator +=, -=.
Pour plus d’informations sur les limites des COleDateTimeSpan
valeurs, consultez l’article Date et Heure : Support Automation.
COleDateTimeSpan ::GetTotalDays
Récupère cette valeur de date/heure exprimée en jours.
double GetTotalDays() const throw();
Valeur de retour
Cette valeur d’intervalle de date/heure exprimée en jours. Bien que cette fonction soit prototype pour retourner un double, elle retourne toujours une valeur entière.
Notes
Valeurs de retour de cette plage de fonctions comprises entre environ - 3,65e6 et 3,65e6.
Pour les autres fonctions qui interrogent la valeur d’un COleDateTimeSpan
objet, consultez les fonctions membres suivantes :
Exemple
COleDateTimeSpan ts(3, 1, 5, 12); // 3 days, 1 hour, 5 min, and 12 sec
ASSERT(ts.GetTotalDays() == 3);
ASSERT(ts.GetTotalHours() == 73);
ASSERT(ts.GetTotalMinutes() == 4385);
ASSERT(ts.GetTotalSeconds() == 263112);
COleDateTimeSpan ::GetTotalHours
Récupère cette valeur de date/heure exprimée en heures.
double GetTotalHours() const throw();
Valeur de retour
Cette valeur d’intervalle de date/heure exprimée en heures. Bien que cette fonction soit prototype pour retourner un double, elle retourne toujours une valeur entière.
Notes
Valeurs de retour de cette plage de fonctions comprises entre environ - 8,77e7 et 8,77e7.
Pour les autres fonctions qui interrogent la valeur d’un COleDateTimeSpan
objet, consultez les fonctions membres suivantes :
Exemple
Consultez l’exemple de GetTotalDays.
COleDateTimeSpan ::GetTotalMinutes
Récupère cette valeur de date/heure exprimée en minutes.
double GetTotalMinutes() const throw();
Valeur de retour
Cette valeur d’intervalle de date/heure exprimée en minutes. Bien que cette fonction soit prototype pour retourner un double, elle retourne toujours une valeur entière.
Notes
Valeurs de retour de cette plage de fonctions comprises entre environ - 5,26e9 et 5,26e9.
Pour les autres fonctions qui interrogent la valeur d’un COleDateTimeSpan
objet, consultez les fonctions membres suivantes :
Exemple
Consultez l’exemple de GetTotalDays.
COleDateTimeSpan ::GetTotalSeconds
Récupère cette valeur d’intervalle de date/heure exprimée en secondes.
double GetTotalSeconds() const throw();
Valeur de retour
Cette valeur d’intervalle de date/heure exprimée en secondes. Bien que cette fonction soit prototype pour retourner un double, elle retourne toujours une valeur entière.
Notes
Valeurs de retour de cette plage de fonctions comprises entre environ - 3,16e11 et 3,16e11.
Pour les autres fonctions qui interrogent la valeur d’un COleDateTimeSpan
objet, consultez les fonctions membres suivantes :
Exemple
Consultez l’exemple de GetTotalDays.
COleDateTimeSpan ::m_span
Valeur sous-jacente double
de cet COleDateTime
objet.
double m_span;
Notes
Cette valeur exprime l’intervalle de date/heure en jours.
Attention
La modification de la valeur dans le double
membre de données modifie la valeur de cet COleDateTimeSpan
objet. Il ne modifie pas l’état de cet COleDateTimeSpan
objet.
COleDateTimeSpan ::m_status
Le type de ce membre de données est le type DateTimeSpanStatus
énuméré, qui est défini dans la COleDateTimeSpan
classe.
DateTimeSpanStatus m_status;
Notes
enum DateTimeSpanStatus{
valid = 0,
invalid = 1,
null = 2,
};
Pour obtenir une brève description de ces valeurs d’état, consultez la liste suivante :
COleDateTimeSpan::valid
Indique que cetCOleDateTimeSpan
objet est valide.COleDateTimeSpan::invalid
Indique que cetCOleDateTimeSpan
objet n’est pas valide ; autrement dit, sa valeur peut être incorrecte.COleDateTimeSpan::null
Indique que cetCOleDateTimeSpan
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 COleDateTimeSpan
objet n’est pas valide dans les cas suivants :
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 de SetStatus.
Pour plus d’informations sur les opérations qui peuvent définir l’état sur non valide, consultez COleDateTimeSpan ::operator +, - et COleDateTimeSpan ::operator +=, -=.
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.
Pour plus d’informations sur les limites des COleDateTimeSpan
valeurs, consultez l’article Date et Heure : Support Automation.
COleDateTimeSpan ::operator =
Copie une COleDateTimeSpan
valeur.
COleDateTimeSpan& operator=(double dblSpanSrc) throw();
Notes
Cet opérateur d’affectation surchargé copie la valeur d’intervalle de date/heure source dans cet COleDateTimeSpan
objet.
COleDateTimeSpan ::operator +, -
Ajoutez, soustraitz et modifiez le signe pour les COleDateTimeSpan
valeurs.
COleDateTimeSpan operator+(const COleDateTimeSpan& dateSpan) const throw();
COleDateTimeSpan operator-(const COleDateTimeSpan& dateSpan) const throw();
COleDateTimeSpan operator-() const throw();
Notes
Les deux premiers opérateurs vous permettent d’ajouter et de soustraire des valeurs d’intervalle de date/heure. Le troisième vous permet de modifier le signe d’une valeur d’intervalle de date/heure.
Si l’un des opérandes a la valeur Null, l’état de la valeur résultante COleDateTimeSpan
est Null.
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 COleDateTimeSpan
n’est pas valide.
Pour plus d’informations sur les valeurs d’état valides, non valides et null, consultez la variable membre m_status .
Exemple
COleDateTimeSpan ts1(3, 1, 5, 12); // 3 days, 1 hour, 5 min, and 12 sec
COleDateTimeSpan ts2(100.0 / (24 * 3600.0)); // 100 seconds
COleDateTimeSpan ts3 = ts1 + ts2;
ASSERT(ts3.GetSeconds() == 52); // 6 mins, 52 secs
COleDateTimeSpan ::operator +=, -=
Ajoutez et soustraitz une COleDateTimeSpan
valeur de cette COleDateTimeSpan
valeur.
COleDateTimeSpan& operator+=(const COleDateTimeSpan dateSpan) throw();
COleDateTimeSpan& operator-=(const COleDateTimeSpan dateSpan) throw();
Notes
Ces opérateurs vous permettent d’ajouter et de soustraire des valeurs d’intervalle de date/heure de cet COleDateTimeSpan
objet. Si l’un des opérandes a la valeur Null, l’état de la valeur résultante COleDateTimeSpan
est Null.
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 COleDateTimeSpan
n’est pas valide.
Pour plus d’informations sur les valeurs d’état valides, non valides et null, consultez la variable membre m_status .
Exemple
COleDateTimeSpan ts1(10.0); // 10 days
COleDateTimeSpan ts2(100.0); // 100 days
ts2 -= ts1;
ASSERT(ts2.GetTotalDays() == 90);
COleDateTimeSpan ::operator double
Convertit cette COleDateTimeSpan
valeur en double
.
operator double() const throw();
Notes
Cet opérateur retourne la valeur de cette COleDateTimeSpan
valeur sous la forme d’un nombre à virgule flottante de jours.
COleDateTimeSpan ::SetDateTimeSpan
Définit la valeur de cette valeur d’intervalle de date/heure.
void SetDateTimeSpan(LONG lDays, int nHours, int nMins, int nSecs) throw();
Paramètres
lDays, nHours, nMins, nSecs
Indiquez les valeurs d’intervalle de date et d’intervalle de temps à copier dans cet COleDateTimeSpan
objet.
Notes
Pour les fonctions qui interrogent la valeur d’un COleDateTimeSpan
objet, consultez les fonctions membres suivantes :
Exemple
COleDateTimeSpan spanOne;
COleDateTimeSpan spanTwo;
spanOne.SetDateTimeSpan(0, 2, 45, 0); // 2 hours and 45 seconds
spanTwo.SetDateTimeSpan(0, 3, -15, 0); // 2 hours and 45 seconds
COleDateTimeSpan ::SetStatus
Définit l’état (validité) de cet COleDateTimeSpan
objet.
void SetStatus(DateTimeSpanStatus status) throw();
Paramètres
statut
Nouvelle valeur d’état pour cet COleDateTimeSpan
objet.
Notes
La valeur du paramètre Status est définie par le DateTimeSpanStatus
type énuméré, qui est défini dans la COleDateTimeSpan
classe.
enum DateTimeSpanStatus{
valid = 0,
invalid = 1,
null = 2,
};
Pour obtenir une brève description de ces valeurs d’état, consultez la liste suivante :
COleDateTimeSpan::valid
Indique que cetCOleDateTimeSpan
objet est valide.COleDateTimeSpan::invalid
Indique que cetCOleDateTimeSpan
objet n’est pas valide ; autrement dit, sa valeur peut être incorrecte.COleDateTimeSpan::null
Indique que cetCOleDateTimeSpan
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++.)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. Notez que l’opérateur d’affectation (operator =) et SetDateTimeSpan définissent l’état de l’objet en fonction des valeurs sources.
Exemple
// if the person is not still in school, set days to graduation to null
if (!m_bStillInSchool || m_dtDateOfGraduation.GetStatus() == COleDateTime::null)
m_dtsDaysToGraduation.SetStatus(COleDateTimeSpan::null);
Voir aussi
COleDateTime, classe
CTime, classe
CTimeSpan, classe
Graphique hiérarchique
Classes partagées ATL/MFC