Sdílet prostřednictvím


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 , , nMinsnSecs ) 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 tento COleDateTimeSpan objekt je platný.

  • COleDateTimeSpan::invalid Označuje, že tento COleDateTimeSpan objekt je neplatný. To znamená, že jeho hodnota může být nesprávná.

  • COleDateTimeSpan::null Označuje, že tento COleDateTimeSpan 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 tento COleDateTimeSpan objekt je platný.

  • COleDateTimeSpan::invalid Označuje, že tento COleDateTimeSpan objekt je neplatný. To znamená, že jeho hodnota může být nesprávná.

  • COleDateTimeSpan::null Označuje, že tento COleDateTimeSpan 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 tento COleDateTimeSpan objekt je platný.

  • COleDateTimeSpan::invalid Označuje, že tento COleDateTimeSpan objekt je neplatný. To znamená, že jeho hodnota může být nesprávná.

  • COleDateTimeSpan::null Označuje, že tento COleDateTimeSpan 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