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 unCOleDateTimeSpan
oggetto da un valore a virgola mobile.COleDateTimeSpan(
lDays
,nHours
,nMins
,nSecs
) Costruisce unCOleDateTimeSpan
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 questoCOleDateTimeSpan
oggetto è valido.COleDateTimeSpan::invalid
Indica che l'oggettoCOleDateTimeSpan
non è valido, ovvero il relativo valore potrebbe non essere corretto.COleDateTimeSpan::null
Indica che questoCOleDateTimeSpan
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 DateTimeSpanStatus
enumerato , 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 questoCOleDateTimeSpan
oggetto è valido.COleDateTimeSpan::invalid
Indica che l'oggettoCOleDateTimeSpan
non è valido, ovvero il relativo valore potrebbe non essere corretto.COleDateTimeSpan::null
Indica che questoCOleDateTimeSpan
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 questoCOleDateTimeSpan
oggetto è valido.COleDateTimeSpan::invalid
Indica che l'oggettoCOleDateTimeSpan
non è valido, ovvero il relativo valore potrebbe non essere corretto.COleDateTimeSpan::null
Indica che questoCOleDateTimeSpan
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