COleDateTimeSpan – třída
Představuje relativní čas, časové rozpětí.
Syntaxe
class COleDateTimeSpan
Členové
Veřejné konstruktory
Název | Popis |
---|---|
COleDateTimeSpan::COleDateTimeSpan | COleDateTimeSpan Vytvoří objekt. |
Veřejné metody
Název | Popis |
---|---|
COleDateTimeSpan::Format | Vygeneruje formátovanou řetězcovou reprezentaci objektu COleDateTimeSpan . |
COleDateTimeSpan::GetDays | Vrátí denní část rozsahu, který tento COleDateTimeSpan objekt představuje. |
COleDateTimeSpan::GetHours | Vrátí hodinovou část rozsahu tohoto COleDateTimeSpan objektu. |
COleDateTimeSpan::GetMinutes | Vrátí minutu rozsahu tohoto COleDateTimeSpan objektu. |
COleDateTimeSpan::GetSeconds | Vrátí druhou část rozsahu, který tento COleDateTimeSpan objekt představuje. |
COleDateTimeSpan::GetStatus | Získá stav (platnost) tohoto COleDateTimeSpan objektu. |
COleDateTimeSpan::GetTotalDays | Vrátí počet dnů, které tento COleDateTimeSpan objekt představuje. |
COleDateTimeSpan::GetTotalHours | Vrátí počet hodin, které tento COleDateTimeSpan objekt představuje. |
COleDateTimeSpan::GetTotalMinutes | Vrátí počet minut, které tento COleDateTimeSpan objekt představuje. |
COleDateTimeSpan::GetTotalSeconds | Vrátí počet sekund, které tento COleDateTimeSpan objekt představuje. |
COleDateTimeSpan::SetDateTimeSpan | Nastaví hodnotu tohoto COleDateTimeSpan objektu. |
COleDateTimeSpan::SetStatus | Nastaví stav (platnost) tohoto COleDateTimeSpan objektu. |
Veřejné operátory
Název | Popis |
---|---|
operator +, - | Sčítání, odečítání a změna znaménka pro COleDateTimeSpan hodnoty |
operator +=, -= | Sčítá a odečte COleDateTimeSpan hodnotu od této COleDateTimeSpan hodnoty. |
operator = | COleDateTimeSpan Zkopíruje hodnotu. |
operator ==, <, <= | Porovnejte dvě COleDateTimeSpan hodnoty. |
operátor double | Převede tuto COleDateTimeSpan hodnotu na hodnotu double . |
Veřejné datové členy
Název | Popis |
---|---|
COleDateTimeSpan::m_span | Obsahuje podklad double pro tento COleDateTimeSpan objekt. |
COleDateTimeSpan::m_status | Obsahuje stav tohoto COleDateTimeSpan objektu. |
Poznámky
COleDateTimeSpan
nemá základní třídu.
Doba COleDateTimeSpan
se uchovává ve dnech.
COleDateTimeSpan
se používá s doprovodnou třídou COleDateTime. COleDateTime
zapouzdřuje DATE
datový typ automatizace OLE. COleDateTime
představuje absolutní časové hodnoty. Všechny COleDateTime
výpočty zahrnují COleDateTimeSpan
hodnoty. Vztah mezi těmito třídami je podobný té mezi CTime a CTimeSpan.
Další informace o předmětech a COleDateTimeSpan
datech COleDateTime
najdete v článku Datum a čas: Podpora automatizace.
Požadavky
Hlavička: ATLComTime.h
Relační operátory COleDateTimeSpan
Relační operátory.
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();
Parametry
dateSpan
Porovnání COleDateTimeSpan
.
Návratová hodnota
Tyto operátory porovnávají dvě hodnoty data a časového rozsahu a vrátí hodnotu TRUE, pokud je podmínka pravdivá; jinak NEPRAVDA.
Poznámky
Poznámka:
Pokud je některý z operandů neplatný, dojde k chybě ATLASSERT.
Příklad
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
COleDateTimeSpan
Vytvoří objekt.
COleDateTimeSpan() throw();
COleDateTimeSpan(double dblSpanSrc) throw();
COleDateTimeSpan(LONG lDays, int nHours, int nMins, int nSecs) throw();
Parametry
dblSpanSrc
Počet dnů, které se mají zkopírovat do nového COleDateTimeSpan
objektu.
lDays, nHours, nMins, nSecs
Zadejte hodnoty dne a času, které se mají zkopírovat do nového COleDateTimeSpan
objektu.
Poznámky
Všechny tyto konstruktory vytvářejí nové COleDateTimeSpan
objekty inicializované na zadanou hodnotu. Stručný popis každého z těchto konstruktorů:
COleDateTimeSpan( ) Vytvoří
COleDateTimeSpan
objekt inicializovaný na hodnotu 0.COleDateTimeSpan(
dblSpanSrc
) VytvoříCOleDateTimeSpan
objekt z hodnoty s plovoucí desetinou čárkou.COleDateTimeSpan(
lDays
,nHours
, ,nMins
nSecs
) VytvoříCOleDateTimeSpan
objekt inicializovaný na zadané číselné hodnoty.
Stav nového COleDateTimeSpan
objektu je nastaven na platný.
Další informace o mezích COleDateTimeSpan
hodnot najdete v článku Datum a čas: Podpora automatizace.
Příklad
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
Vygeneruje formátovanou řetězcovou reprezentaci objektu COleDateTimeSpan
.
CString Format(LPCTSTR pFormat) const;
CString Format(UINT nID) const;
Parametry
pFormat
Formátovací řetězec podobný řetězci printf
formátování. Kódy formátování, před znakem procenta (%
) jsou nahrazeny odpovídající COleDateTimeSpan
komponentou. Ostatní znaky ve formátovacím řetězci se zkopírují beze změny do vráceného řetězce. Hodnoty a význam kódů formátování jsou Format
uvedeny níže:
%H Hodiny v aktuálním dni
%M minut v aktuální hodině
%S Sekundy v aktuální minutě
%% Znaménko procent
Čtyři výše uvedené kódy formátu jsou jedinými kódy, které formát přijme.
-
Nid
ID prostředku pro řetězec pro ovládací prvek formátu.
Návratová hodnota
A CString
obsahující formátovanou hodnotu data a času.
Poznámky
Voláním těchto funkcí vytvoříte formátovanou reprezentaci hodnoty časového rozsahu. Pokud je stav tohoto COleDateTimeSpan
objektu null, návratová hodnota je prázdný řetězec. Pokud je stav neplatný, návratový řetězec je určen řetězcovým prostředkem IDS_INVALID_DATETIMESPAN.
Stručný popis formulářů pro tuto funkci:
Format( pFormat )
Tento formulář formátuje hodnotu pomocí formátového řetězce, který obsahuje speciální kódy formátování, které jsou před znakem procenta (%), jako v printf
. Formátovací řetězec se funkci předá jako parametr.
Format( nID )
Tento formulář formátuje hodnotu pomocí formátového řetězce, který obsahuje speciální kódy formátování, které jsou před znakem procenta (%), jako v printf
. Formátovací řetězec je prostředek. ID tohoto prostředku řetězce se předává jako parametr.
Příklad
// 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
Načte část dne této hodnoty data a času.
LONG GetDays() const throw();
Návratová hodnota
Denní část této hodnoty data a času.
Poznámky
Návratové hodnoty z této funkce jsou přibližně od 3 615 000 do 3 615 000.
Další funkce, které dotazují hodnotu objektu COleDateTimeSpan
, najdete v následujících členských funkcích:
Příklad
COleDateTimeSpan ts(3, 1, 5, 12); // 3 days, 1 hour, 5 min, and 12 sec
ASSERT(ts.GetDays() == 3);
COleDateTimeSpan::GetHours
Načte hodinovou část této hodnoty data a času.
LONG GetHours() const throw();
Návratová hodnota
Část hodin této hodnoty data a času.
Poznámky
Návratové hodnoty z tohoto rozsahu funkcí od -23 do 23.
Další funkce, které dotazují hodnotu objektu COleDateTimeSpan
, najdete v následujících členských funkcích:
Příklad
COleDateTimeSpan ts(3, 1, 5, 12); // 3 days, 1 hour, 5 min, and 12 sec
ASSERT(ts.GetHours() == 1);
COleDateTimeSpan::GetMinutes
Načte minutovou část této hodnoty data a času.
LONG GetMinutes() const throw();
Návratová hodnota
Část minut této hodnoty data a času.
Poznámky
Návratové hodnoty z této funkce jsou v rozsahu od -59 do 59.
Další funkce, které dotazují hodnotu objektu COleDateTimeSpan
, najdete v následujících členských funkcích:
Příklad
COleDateTimeSpan ts(3, 1, 5, 12); // 3 days, 1 hour, 5 min, and 12 sec
ASSERT(ts.GetMinutes() == 5);
COleDateTimeSpan::GetSeconds
Načte druhou část této hodnoty data a času.
LONG GetSeconds() const throw();
Návratová hodnota
Část sekund této hodnoty data a času.
Poznámky
Návratové hodnoty z této funkce jsou v rozsahu od -59 do 59.
Další funkce, které dotazují hodnotu objektu COleDateTimeSpan
, najdete v následujících členských funkcích:
Příklad
COleDateTimeSpan ts(3, 1, 5, 12); // 3 days, 1 hour, 5 min, and 12 sec
ASSERT(ts.GetSeconds() == 12);
COleDateTimeSpan::GetStatus
Získá stav (platnost) tohoto COleDateTimeSpan
objektu.
DateTimeSpanStatus GetStatus() const throw();
Návratová hodnota
Stav této COleDateTimeSpan
hodnoty.
Poznámky
Návratová hodnota je definována výčtem DateTimeSpanStatus
typu, který je definován v rámci COleDateTimeSpan
třídy.
enum DateTimeSpanStatus{
valid = 0,
invalid = 1,
null = 2,
};
Stručný popis těchto hodnot stavu najdete v následujícím seznamu:
COleDateTimeSpan::valid
Označuje, že tentoCOleDateTimeSpan
objekt je platný.COleDateTimeSpan::invalid
Označuje, že tentoCOleDateTimeSpan
objekt je neplatný. To znamená, že jeho hodnota může být nesprávná.COleDateTimeSpan::null
Označuje, že tentoCOleDateTimeSpan
objekt má hodnotu null, to znamená, že pro tento objekt nebyla zadána žádná hodnota. (Toto je hodnota null v databázovém smyslu "nemá žádnou hodnotu", na rozdíl od hodnoty C++NULL.)
Stav objektu COleDateTimeSpan
je neplatný v následujících případech:
Pokud tento objekt zaznamenal přetečení nebo podtečení během aritmetické operace přiřazení,
+=
konkrétně nebo-=
.Pokud byla k tomuto objektu přiřazena neplatná hodnota.
Pokud byl stav tohoto objektu explicitně nastaven na neplatné pomocí
SetStatus
.
Další informace o operacích, které mohou nastavit stav na neplatné, naleznete v tématu COleDateTimeSpan::operator +, - a COleDateTimeSpan::operator +=, -=.
Další informace o mezích COleDateTimeSpan
hodnot najdete v článku Datum a čas: Podpora automatizace.
COleDateTimeSpan::GetTotalDays
Načte tuto hodnotu data a časového rozsahu vyjádřenou ve dnech.
double GetTotalDays() const throw();
Návratová hodnota
Tato hodnota data a časového rozsahu vyjádřená ve dnech. I když je tato funkce prototypována tak, aby vrátila dvojitou hodnotu, vždy vrátí celočíselnou hodnotu.
Poznámky
Návratové hodnoty z této funkce jsou přibližně od 3,65e6 do 3,65e6.
Další funkce, které dotazují hodnotu objektu COleDateTimeSpan
, najdete v následujících členských funkcích:
Příklad
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
Načte tuto hodnotu data a časového rozsahu vyjádřenou v hodinách.
double GetTotalHours() const throw();
Návratová hodnota
Tato hodnota data a časového rozsahu vyjádřená v hodinách. I když je tato funkce prototypována tak, aby vrátila dvojitou hodnotu, vždy vrátí celočíselnou hodnotu.
Poznámky
Návratové hodnoty z této funkce jsou v rozsahu přibližně od 8,77e7 do 8,77e7.
Další funkce, které dotazují hodnotu objektu COleDateTimeSpan
, najdete v následujících členských funkcích:
Příklad
Podívejte se na příklad pro GetTotalDays.
COleDateTimeSpan::GetTotalMinutes
Načte tuto hodnotu data a časového rozsahu vyjádřenou v minutách.
double GetTotalMinutes() const throw();
Návratová hodnota
Tato hodnota data a času vyjádřená v minutách. I když je tato funkce prototypována tak, aby vrátila dvojitou hodnotu, vždy vrátí celočíselnou hodnotu.
Poznámky
Návratové hodnoty z této funkce jsou přibližně od 5,26e9 do 5,26e9.
Další funkce, které dotazují hodnotu objektu COleDateTimeSpan
, najdete v následujících členských funkcích:
Příklad
Podívejte se na příklad pro GetTotalDays.
COleDateTimeSpan::GetTotalSeconds
Načte tuto hodnotu data a časového rozsahu vyjádřenou v sekundách.
double GetTotalSeconds() const throw();
Návratová hodnota
Tato hodnota data a časového rozsahu vyjádřená v sekundách. I když je tato funkce prototypována tak, aby vrátila dvojitou hodnotu, vždy vrátí celočíselnou hodnotu.
Poznámky
Návratové hodnoty z této funkce jsou v rozsahu přibližně od 3,16e11 do 3,16e11.
Další funkce, které dotazují hodnotu objektu COleDateTimeSpan
, najdete v následujících členských funkcích:
Příklad
Podívejte se na příklad pro GetTotalDays.
COleDateTimeSpan::m_span
Podkladová double
hodnota pro tento COleDateTime
objekt.
double m_span;
Poznámky
Tato hodnota vyjadřuje rozsah data a času ve dnech.
Upozornění
Změna hodnoty v datovém členu double
změní hodnotu tohoto COleDateTimeSpan
objektu. Nezmění stav tohoto COleDateTimeSpan
objektu.
COleDateTimeSpan::m_status
Typ tohoto datového členu je výčtový typ DateTimeSpanStatus
, který je definován v rámci COleDateTimeSpan
třídy.
DateTimeSpanStatus m_status;
Poznámky
enum DateTimeSpanStatus{
valid = 0,
invalid = 1,
null = 2,
};
Stručný popis těchto hodnot stavu najdete v následujícím seznamu:
COleDateTimeSpan::valid
Označuje, že tentoCOleDateTimeSpan
objekt je platný.COleDateTimeSpan::invalid
Označuje, že tentoCOleDateTimeSpan
objekt je neplatný. To znamená, že jeho hodnota může být nesprávná.COleDateTimeSpan::null
Označuje, že tentoCOleDateTimeSpan
objekt má hodnotu null, to znamená, že pro tento objekt nebyla zadána žádná hodnota. (Toto je hodnota null v databázovém smyslu "nemá žádnou hodnotu", na rozdíl od hodnoty C++NULL.)
Stav objektu COleDateTimeSpan
je neplatný v následujících případech:
Pokud tento objekt zaznamenal přetečení nebo podtečení během aritmetické operace přiřazení,
+=
konkrétně nebo-=
.Pokud byla k tomuto objektu přiřazena neplatná hodnota.
Pokud byl stav tohoto objektu explicitně nastaven na neplatný pomocí SetStatus.
Další informace o operacích, které mohou nastavit stav na neplatné, naleznete v tématu COleDateTimeSpan::operator +, - a COleDateTimeSpan::operator +=, -=.
Upozornění
Tento datový člen je určený pro pokročilé programovací situace. Měli byste použít vložené členské funkce GetStatus a SetStatus. Další SetStatus
upozornění týkající se explicitního nastavení tohoto datového člena
Další informace o mezích COleDateTimeSpan
hodnot najdete v článku Datum a čas: Podpora automatizace.
COleDateTimeSpan::operator =
COleDateTimeSpan
Zkopíruje hodnotu.
COleDateTimeSpan& operator=(double dblSpanSrc) throw();
Poznámky
Tento přetížený operátor přiřazení zkopíruje hodnotu zdrojového data a časového rozsahu do tohoto COleDateTimeSpan
objektu.
COleDateTimeSpan::operator +, -
Sčítání, odečítání a změna znaménka pro COleDateTimeSpan
hodnoty
COleDateTimeSpan operator+(const COleDateTimeSpan& dateSpan) const throw();
COleDateTimeSpan operator-(const COleDateTimeSpan& dateSpan) const throw();
COleDateTimeSpan operator-() const throw();
Poznámky
První dva operátory umožňují sčítat a odečítat hodnoty data a času. Třetí umožňuje změnit znaménko hodnoty data a času.
Pokud některý z operandů má hodnotu null, je stav výsledné COleDateTimeSpan
hodnoty null.
Pokud je některý z operandů neplatný a druhý není null, je stav výsledné COleDateTimeSpan
hodnoty neplatný.
Další informace o platných, neplatných a null stavových hodnotách najdete v m_status členské proměnné.
Příklad
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 +=, -=
Sčítá a odečte COleDateTimeSpan
hodnotu od této COleDateTimeSpan
hodnoty.
COleDateTimeSpan& operator+=(const COleDateTimeSpan dateSpan) throw();
COleDateTimeSpan& operator-=(const COleDateTimeSpan dateSpan) throw();
Poznámky
Tyto operátory umožňují od tohoto COleDateTimeSpan
objektu sčítat a odečítat hodnoty data a času. Pokud některý z operandů má hodnotu null, je stav výsledné COleDateTimeSpan
hodnoty null.
Pokud je některý z operandů neplatný a druhý není null, je stav výsledné COleDateTimeSpan
hodnoty neplatný.
Další informace o platných, neplatných a null stavových hodnotách najdete v m_status členské proměnné.
Příklad
COleDateTimeSpan ts1(10.0); // 10 days
COleDateTimeSpan ts2(100.0); // 100 days
ts2 -= ts1;
ASSERT(ts2.GetTotalDays() == 90);
COleDateTimeSpan::operator double
Převede tuto COleDateTimeSpan
hodnotu na hodnotu double
.
operator double() const throw();
Poznámky
Tento operátor vrátí hodnotu této COleDateTimeSpan
hodnoty jako počet dnů s plovoucí desetinou čárkou.
COleDateTimeSpan::SetDateTimeSpan
Nastaví hodnotu tohoto data a časového rozsahu.
void SetDateTimeSpan(LONG lDays, int nHours, int nMins, int nSecs) throw();
Parametry
lDays, nHours, nMins, nSecs
Uveďte hodnoty rozsahu data a časového rozsahu, které se mají do tohoto COleDateTimeSpan
objektu zkopírovat.
Poznámky
Funkce, které dotazuje hodnotu objektu COleDateTimeSpan
, najdete v následujících členských funkcích:
Příklad
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
Nastaví stav (platnost) tohoto COleDateTimeSpan
objektu.
void SetStatus(DateTimeSpanStatus status) throw();
Parametry
status
Nová hodnota stavu pro tento COleDateTimeSpan
objekt.
Poznámky
Hodnota parametru Status je definována výčtem DateTimeSpanStatus
typu, který je definován v rámci COleDateTimeSpan
třídy.
enum DateTimeSpanStatus{
valid = 0,
invalid = 1,
null = 2,
};
Stručný popis těchto hodnot stavu najdete v následujícím seznamu:
COleDateTimeSpan::valid
Označuje, že tentoCOleDateTimeSpan
objekt je platný.COleDateTimeSpan::invalid
Označuje, že tentoCOleDateTimeSpan
objekt je neplatný. To znamená, že jeho hodnota může být nesprávná.COleDateTimeSpan::null
Označuje, že tentoCOleDateTimeSpan
objekt má hodnotu null, to znamená, že pro tento objekt nebyla zadána žádná hodnota. (Toto je hodnota null v databázovém smyslu "nemá žádnou hodnotu", na rozdíl od hodnoty C++NULL.)Upozornění
Tato funkce je určená pro pokročilé programovací situace. Tato funkce nemění data v tomto objektu. Nejčastěji se použije k nastavení stavu null nebo neplatného stavu. Všimněte si, že operátor přiřazení (operator =) a SetDateTimeSpan nastavují stav objektu na základě zdrojových hodnot.
Příklad
// 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);
Viz také
COleDateTime – třída
CTime – třída
CTimeSpan – třída
Graf hierarchie
Sdílené třídy ATL/MFC