Condividi tramite


Classe COleDateTimeSpan

Rappresenta un tempo relativo, un intervallo di tempo.

Sintassi

class COleDateTimeSpan

Membri

Costruttori pubblici

Nome Descrizione
COleDateTimeSpan::COleDateTimeSpan Costruisce un oggetto COleDateTimeSpan.

Metodi pubblici

Nome Descrizione
COleDateTimeSpan::Format Genera una rappresentazione di stringa formattata di un COleDateTimeSpan oggetto .
COleDateTimeSpan::GetDays Restituisce la parte del giorno dell'intervallo rappresentata da questo COleDateTimeSpan oggetto.
COleDateTimeSpan::GetHours Restituisce la parte dell'ora dell'intervallo rappresentato da questo COleDateTimeSpan oggetto.
COleDateTimeSpan::GetMinutes Restituisce la parte del minuto dell'intervallo rappresentato da questo COleDateTimeSpan oggetto.
COleDateTimeSpan::GetSeconds Restituisce la seconda parte dell'intervallo rappresentata da questo COleDateTimeSpan oggetto.
COleDateTimeSpan::GetStatus Ottiene lo stato (validità) dell'oggetto COleDateTimeSpan .
COleDateTimeSpan::GetTotalDays Restituisce il numero di giorni COleDateTimeSpan rappresentato dall'oggetto.
COleDateTimeSpan::GetTotalHours Restituisce il numero di ore rappresenta l'oggetto COleDateTimeSpan .
COleDateTimeSpan::GetTotalMinutes Restituisce il numero di minuti rappresentato da questo COleDateTimeSpan oggetto.
COleDateTimeSpan::GetTotalSeconds Restituisce il numero di secondi rappresentato dall'oggetto COleDateTimeSpan .
COleDateTimeSpan::SetDateTimeSpan Imposta il valore di questo COleDateTimeSpan oggetto.
COleDateTimeSpan::SetStatus Imposta lo stato (validità) dell'oggetto COleDateTimeSpan .

Operatori pubblici

Nome Descrizione
operator +, - Aggiungere, sottrarre e modificare il segno per i COleDateTimeSpan valori.
operator +=, -= Aggiungere e sottrarre un COleDateTimeSpan valore da questo COleDateTimeSpan valore.
operator = Copia un COleDateTimeSpan valore.
operator ==, <, <= Confrontare due COleDateTimeSpan valori.
operator double Converte questo COleDateTimeSpan valore in un oggetto double.

Membri dati pubblici

Nome Descrizione
COleDateTimeSpan::m_span Contiene l'oggetto sottostante double per questo COleDateTimeSpan oggetto.
COleDateTimeSpan::m_status Contiene lo stato di questo COleDateTimeSpan oggetto.

Osservazioni:

COleDateTimeSpan non dispone di una classe di base.

Un COleDateTimeSpan oggetto mantiene il tempo in giorni.

COleDateTimeSpan viene usato con la classe complementare COleDateTime. COleDateTime incapsula il DATE tipo di dati di automazione OLE. COleDateTime rappresenta i valori di ora assoluti. Tutti i COleDateTime calcoli comportano COleDateTimeSpan valori. La relazione tra queste classi è analoga a quella tra CTime e CTimeSpan.

Per altre informazioni sulle COleDateTime classi e COleDateTimeSpan , vedere l'articolo Data e ora: Supporto automazione.

Requisiti

Intestazione: ATLComTime.h

Operatori relazionali COleDateTimeSpan

Operatori di confronto.

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();

Parametri

dateSpan
Oggetto COleDateTimeSpan da confrontare.

Valore restituito

Questi operatori confrontano due valori di intervallo di data/ora e restituiscono TRUE se la condizione è true; in caso contrario FALSE.

Osservazioni:

Nota

Se uno degli operandi non è valido, si verificherà ATLASSERT.

Esempio

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

Costruisce un oggetto COleDateTimeSpan.

COleDateTimeSpan() throw();
COleDateTimeSpan(double dblSpanSrc) throw();
COleDateTimeSpan(LONG lDays, int nHours, int nMins, int nSecs) throw();

Parametri

dblSpanSrc
Numero di giorni da copiare nel nuovo COleDateTimeSpan oggetto.

lDays, nHours, nMins, nSecs
Indicare i valori di giorno e ora da copiare nel nuovo COleDateTimeSpan oggetto.

Osservazioni:

Tutti questi costruttori creano nuovi COleDateTimeSpan oggetti inizializzati sul valore specificato. Di seguito è riportata una breve descrizione di ognuno di questi costruttori:

  • COleDateTimeSpan( ) Costruisce un COleDateTimeSpan oggetto inizializzato su 0.

  • COleDateTimeSpan( dblSpanSrc ) Costruisce un COleDateTimeSpan oggetto da un valore a virgola mobile.

  • COleDateTimeSpan( lDays, nHours, nMins, nSecs ) Costruisce un COleDateTimeSpan oggetto inizializzato nei valori numerici specificati.

Lo stato del nuovo COleDateTimeSpan oggetto è impostato su valido.

Per altre informazioni sui limiti per COleDateTimeSpan i valori, vedere l'articolo Data e ora: Supporto automazione.

Esempio

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

Genera una rappresentazione di stringa formattata di un COleDateTimeSpan oggetto .

CString Format(LPCTSTR pFormat) const;
CString Format(UINT nID) const;

Parametri

pFormat
Stringa di formattazione simile alla printf stringa di formattazione. I codici di formattazione, preceduti da un segno percentuale (%) vengono sostituiti dal componente corrispondente COleDateTimeSpan . Gli altri caratteri nella stringa di formattazione vengono copiati senza modifiche alla stringa restituita. Il valore e il significato dei codici di formattazione per Format sono elencati di seguito:

  • %H Ore nel giorno corrente

  • %M Minuti nell'ora corrente

  • %S Secondi nel minuto corrente

  • %% Segno percentuale

I quattro codici di formato elencati in precedenza sono gli unici codici accettati da Format.

-

nID
ID risorsa per la stringa di controllo formato.

Valore restituito

Oggetto CString contenente il valore di data/intervallo di tempo formattato.

Osservazioni:

Chiamare queste funzioni per creare una rappresentazione formattata del valore dell'intervallo di tempo. Se lo stato di questo COleDateTimeSpan oggetto è Null, il valore restituito è una stringa vuota. Se lo stato non è valido, la stringa restituita viene specificata dalla risorsa stringa IDS_INVALID_DATETIMESPAN.

Di seguito è riportata una breve descrizione dei moduli per questa funzione:

Format( pFormat )
Questo modulo formatta il valore usando la stringa di formato che contiene codici di formattazione speciali preceduti da un segno di percentuale (%), come in printf. La stringa di formattazione viene passata come parametro alla funzione.

Format( nID )
Questo modulo formatta il valore usando la stringa di formato che contiene codici di formattazione speciali preceduti da un segno di percentuale (%), come in printf. La stringa di formattazione è una risorsa. L'ID di questa risorsa stringa viene passato come parametro.

Esempio

// 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

Recupera la parte relativa al giorno di questo valore di intervallo di data/ora.

LONG GetDays() const throw();

Valore restituito

Parte del giorno di questo valore di intervallo di data/ora.

Osservazioni:

I valori restituiti da questa funzione sono compresi tra circa - 3.615.000 e 3.615.000.

Per altre funzioni che eseguono query sul valore di un COleDateTimeSpan oggetto, vedere le funzioni membro seguenti:

Esempio

COleDateTimeSpan ts(3, 1, 5, 12); // 3 days, 1 hour, 5 min, and 12 sec
ASSERT(ts.GetDays() == 3);   

COleDateTimeSpan::GetHours

Recupera la parte dell'ora di questo valore di intervallo di data/ora.

LONG GetHours() const throw();

Valore restituito

Parte ore di questo valore di intervallo di data/ora.

Osservazioni:

Valori restituiti da questo intervallo di funzioni compreso tra - 23 e 23.

Per altre funzioni che eseguono query sul valore di un COleDateTimeSpan oggetto, vedere le funzioni membro seguenti:

Esempio

COleDateTimeSpan ts(3, 1, 5, 12); // 3 days, 1 hour, 5 min, and 12 sec
ASSERT(ts.GetHours() == 1);

COleDateTimeSpan::GetMinutes

Recupera la parte del minuto di questo valore di intervallo di data/ora.

LONG GetMinutes() const throw();

Valore restituito

Parte dei minuti di questo valore di intervallo di data/ora.

Osservazioni:

Valori restituiti da questo intervallo di funzioni compreso tra - 59 e 59.

Per altre funzioni che eseguono query sul valore di un COleDateTimeSpan oggetto, vedere le funzioni membro seguenti:

Esempio

COleDateTimeSpan ts(3, 1, 5, 12); // 3 days, 1 hour, 5 min, and 12 sec
ASSERT(ts.GetMinutes() == 5);   

COleDateTimeSpan::GetSeconds

Recupera la seconda parte di questo valore di intervallo di data/ora.

LONG GetSeconds() const throw();

Valore restituito

Parte dei secondi di questo valore di intervallo di data/ora.

Osservazioni:

Valori restituiti da questo intervallo di funzioni compreso tra - 59 e 59.

Per altre funzioni che eseguono query sul valore di un COleDateTimeSpan oggetto, vedere le funzioni membro seguenti:

Esempio

COleDateTimeSpan ts(3, 1, 5, 12); // 3 days, 1 hour, 5 min, and 12 sec
ASSERT(ts.GetSeconds() == 12);   

COleDateTimeSpan::GetStatus

Ottiene lo stato (validità) dell'oggetto COleDateTimeSpan .

DateTimeSpanStatus GetStatus() const throw();

Valore restituito

Stato di questo COleDateTimeSpan valore.

Osservazioni:

Il valore restituito è definito dal DateTimeSpanStatus tipo enumerato, definito all'interno della COleDateTimeSpan classe .

enum DateTimeSpanStatus{
   valid = 0,
   invalid = 1,
   null = 2,
};

Per una breve descrizione di questi valori di stato, vedere l'elenco seguente:

  • COleDateTimeSpan::valid Indica che questo COleDateTimeSpan oggetto è valido.

  • COleDateTimeSpan::invalid Indica che l'oggetto COleDateTimeSpan non è valido, ovvero il relativo valore potrebbe non essere corretto.

  • COleDateTimeSpan::null Indica che questo COleDateTimeSpan oggetto è Null, ovvero che non è stato fornito alcun valore per questo oggetto. Si tratta di "null" nel senso del database di "non avere alcun valore", invece di C++ NULL.

Lo stato di un COleDateTimeSpan oggetto non è valido nei casi seguenti:

  • Se questo oggetto ha riscontrato un overflow o un underflow durante un'operazione di assegnazione aritmetica, ovvero += o -=.

  • Se a questo oggetto è stato assegnato un valore non valido.

  • Se lo stato di questo oggetto è stato impostato in modo esplicito su non valido tramite SetStatus.

Per altre informazioni sulle operazioni che possono impostare lo stato su non valido, vedere COleDateTimeSpan::operator +, - e COleDateTimeSpan::operator +=, -=.

Per altre informazioni sui limiti per COleDateTimeSpan i valori, vedere l'articolo Data e ora: Supporto automazione.

COleDateTimeSpan::GetTotalDays

Recupera questo valore di intervallo di data/ora espresso in giorni.

double GetTotalDays() const throw();

Valore restituito

Valore di intervallo di data/ora espresso in giorni. Anche se questa funzione è prototipo per restituire un valore double, restituirà sempre un valore intero.

Osservazioni:

I valori restituiti da questa funzione sono compresi tra circa - 3,65e6 e 3,65e6.

Per altre funzioni che eseguono query sul valore di un COleDateTimeSpan oggetto, vedere le funzioni membro seguenti:

Esempio

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

Recupera questo valore di intervallo di data/ora espresso in ore.

double GetTotalHours() const throw();

Valore restituito

Valore di intervallo di data/ora espresso in ore. Anche se questa funzione è prototipo per restituire un valore double, restituirà sempre un valore intero.

Osservazioni:

I valori restituiti da questa funzione sono compresi tra circa - 8,77e7 e 8,77e7.

Per altre funzioni che eseguono query sul valore di un COleDateTimeSpan oggetto, vedere le funzioni membro seguenti:

Esempio

Vedere l'esempio per GetTotalDays.

COleDateTimeSpan::GetTotalMinutes

Recupera questo valore di intervallo di data/ora espresso in minuti.

double GetTotalMinutes() const throw();

Valore restituito

Valore di intervallo di data/ora espresso in minuti. Anche se questa funzione è prototipo per restituire un valore double, restituirà sempre un valore intero.

Osservazioni:

I valori restituiti da questa funzione sono compresi tra circa - 5,26e9 e 5,26e9.

Per altre funzioni che eseguono query sul valore di un COleDateTimeSpan oggetto, vedere le funzioni membro seguenti:

Esempio

Vedere l'esempio per GetTotalDays.

COleDateTimeSpan::GetTotalSeconds

Recupera questo valore di intervallo di data/ora espresso in secondi.

double GetTotalSeconds() const throw();

Valore restituito

Questo valore di intervallo di data/ora espresso in secondi. Anche se questa funzione è prototipo per restituire un valore double, restituirà sempre un valore intero.

Osservazioni:

I valori restituiti da questa funzione vanno da circa a 3,16e11 a 3,16e11.

Per altre funzioni che eseguono query sul valore di un COleDateTimeSpan oggetto, vedere le funzioni membro seguenti:

Esempio

Vedere l'esempio per GetTotalDays.

COleDateTimeSpan::m_span

Valore sottostante double per questo COleDateTime oggetto.

double m_span;

Osservazioni:

Questo valore esprime l'intervallo di data/ora in giorni.

Attenzione

La modifica del valore nel double membro dati modificherà il valore di questo COleDateTimeSpan oggetto. Non modifica lo stato di questo COleDateTimeSpan oggetto.

COleDateTimeSpan::m_status

Il tipo per questo membro dati è il tipo DateTimeSpanStatusenumerato , definito all'interno della COleDateTimeSpan classe .

DateTimeSpanStatus m_status;

Osservazioni:

enum DateTimeSpanStatus{
   valid = 0,
   invalid = 1,
   null = 2,
   };

Per una breve descrizione di questi valori di stato, vedere l'elenco seguente:

  • COleDateTimeSpan::valid Indica che questo COleDateTimeSpan oggetto è valido.

  • COleDateTimeSpan::invalid Indica che l'oggetto COleDateTimeSpan non è valido, ovvero il relativo valore potrebbe non essere corretto.

  • COleDateTimeSpan::null Indica che questo COleDateTimeSpan oggetto è Null, ovvero che non è stato fornito alcun valore per questo oggetto. Si tratta di "null" nel senso del database di "non avere alcun valore", invece di C++ NULL.

Lo stato di un COleDateTimeSpan oggetto non è valido nei casi seguenti:

  • Se questo oggetto ha riscontrato un overflow o un underflow durante un'operazione di assegnazione aritmetica, ovvero += o -=.

  • Se a questo oggetto è stato assegnato un valore non valido.

  • Se lo stato di questo oggetto è stato impostato in modo esplicito su non valido tramite SetStatus.

Per altre informazioni sulle operazioni che possono impostare lo stato su non valido, vedere COleDateTimeSpan::operator +, - e COleDateTimeSpan::operator +=, -=.

Attenzione

Questo membro dati è destinato a situazioni di programmazione avanzate. È consigliabile usare le funzioni membro inline GetStatus e SetStatus. Vedere SetStatus per ulteriori precauzioni relative all'impostazione esplicita di questo membro dati.

Per altre informazioni sui limiti per COleDateTimeSpan i valori, vedere l'articolo Data e ora: Supporto automazione.

COleDateTimeSpan::operator =

Copia un COleDateTimeSpan valore.

COleDateTimeSpan& operator=(double dblSpanSrc) throw();

Osservazioni:

Questo operatore di assegnazione di overload copia il valore di data/ora di origine in questo COleDateTimeSpan oggetto.

COleDateTimeSpan::operator +, -

Aggiungere, sottrarre e modificare il segno per i COleDateTimeSpan valori.

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

Osservazioni:

I primi due operatori consentono di aggiungere e sottrarre valori di data/intervallo di tempo. Il terzo consente di modificare il segno di un valore di intervallo di data/ora.

Se uno degli operandi è Null, lo stato del valore risultante COleDateTimeSpan è Null.

Se uno degli operandi non è valido e l'altro non è Null, lo stato del valore risultante COleDateTimeSpan non è valido.

Per altre informazioni sui valori di stato validi, non validi e Null, vedere la variabile membro m_status .

Esempio

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 +=, -=

Aggiungere e sottrarre un COleDateTimeSpan valore da questo COleDateTimeSpan valore.

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

Osservazioni:

Questi operatori consentono di aggiungere e sottrarre valori di data/intervallo di tempo da questo COleDateTimeSpan oggetto. Se uno degli operandi è Null, lo stato del valore risultante COleDateTimeSpan è Null.

Se uno degli operandi non è valido e l'altro non è Null, lo stato del valore risultante COleDateTimeSpan non è valido.

Per altre informazioni sui valori di stato validi, non validi e Null, vedere la variabile membro m_status .

Esempio

COleDateTimeSpan ts1(10.0); // 10 days
COleDateTimeSpan ts2(100.0); // 100 days
ts2 -= ts1;
ASSERT(ts2.GetTotalDays() == 90);   

COleDateTimeSpan::operator double

Converte questo COleDateTimeSpan valore in un oggetto double.

operator double() const throw();

Osservazioni:

Questo operatore restituisce il valore di questo COleDateTimeSpan valore come numero a virgola mobile di giorni.

COleDateTimeSpan::SetDateTimeSpan

Imposta il valore di questo valore di intervallo di data/ora.

void SetDateTimeSpan(LONG lDays, int nHours, int nMins, int nSecs) throw();

Parametri

lDays, nHours, nMins, nSecs
Indicare i valori di intervallo di data e intervallo di tempo da copiare in questo COleDateTimeSpan oggetto.

Osservazioni:

Per le funzioni che eseguono query sul valore di un COleDateTimeSpan oggetto, vedere le funzioni membro seguenti:

Esempio

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

Imposta lo stato (validità) dell'oggetto COleDateTimeSpan .

void SetStatus(DateTimeSpanStatus status) throw();

Parametri

status
Nuovo valore di stato per questo COleDateTimeSpan oggetto.

Osservazioni:

Il valore del parametro Status è definito dal DateTimeSpanStatus tipo enumerato, definito all'interno della COleDateTimeSpan classe .

enum DateTimeSpanStatus{
   valid = 0,
   invalid = 1,
   null = 2,
   };

Per una breve descrizione di questi valori di stato, vedere l'elenco seguente:

  • COleDateTimeSpan::valid Indica che questo COleDateTimeSpan oggetto è valido.

  • COleDateTimeSpan::invalid Indica che l'oggetto COleDateTimeSpan non è valido, ovvero il relativo valore potrebbe non essere corretto.

  • COleDateTimeSpan::null Indica che questo COleDateTimeSpan oggetto è Null, ovvero che non è stato fornito alcun valore per questo oggetto. Si tratta di "null" nel senso del database di "non avere alcun valore", invece di C++ NULL.

    Attenzione

    Questa funzione è per situazioni di programmazione avanzate. Questa funzione non modifica i dati in questo oggetto. Viene spesso usato per impostare lo stato su Null o non valido. Si noti che l'operatore di assegnazione (operatore =) e SetDateTimeSpan impostano lo stato dell'oggetto in base ai valori di origine.

Esempio

// 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);   

Vedi anche

Classe COleDateTime
Classe CTime
Classe CTimeSpan
Grafico della gerarchia
Classi condivise ATL/MFC