Partager via


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 un COleDateTimeSpan objet à partir d’une valeur à virgule flottante.

  • COleDateTimeSpan( lDays, , nMins nHours, nSecs ) Construit un COleDateTimeSpan 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 cet COleDateTimeSpan objet est valide.

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

  • COleDateTimeSpan::null Indique que cet COleDateTimeSpan 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 SetStatusde .

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 cet COleDateTimeSpan objet est valide.

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

  • COleDateTimeSpan::null Indique que cet COleDateTimeSpan 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 cet COleDateTimeSpan objet est valide.

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

  • COleDateTimeSpan::null Indique que cet COleDateTimeSpan 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