Sdílet prostřednictvím


CTimeSpan Třída

Množství času, které je interně uloženo jako počet sekund v časovém rozsahu.

Syntaxe

class CTimeSpan

Členové

Veřejné konstruktory

Název Popis
CTimeSpan::CTimeSpan Vytváří objekty CTimeSpan různými způsoby.

Veřejné metody

Název Popis
CTimeSpan::Format Převede na CTimeSpan formátovaný řetězec.
CTimeSpan::GetDays Vrátí hodnotu, která představuje počet celých dnů v tomto CTimeSpan.
CTimeSpan::GetHours Vrátí hodnotu, která představuje počet hodin v aktuálním dni (-23 až 23).
CTimeSpan::GetMinutes Vrátí hodnotu, která představuje počet minut v aktuální hodině (-59 až 59).
CTimeSpan::GetSeconds Vrátí hodnotu, která představuje počet sekund v aktuální minutě (-59 až 59).
CTimeSpan::GetTimeSpan Vrátí hodnotu objektu CTimeSpan .
CTimeSpan::GetTotalHours Vrátí hodnotu, která představuje celkový počet celých hodin v tomto CTimeSpan.
CTimeSpan::GetTotalMinutes Vrátí hodnotu, která představuje celkový počet celých minut v tomto CTimeSpan.
CTimeSpan::GetTotalSeconds Vrátí hodnotu, která představuje celkový počet celých sekund v tomto CTimeSpanargumentu .
CTimeSpan::Serialize64 Serializuje data do archivu nebo z archivu.

Operátory

Název Popis
operator + - Sčítá a odečte objekty CTimeSpan .
operator += -= Sčítá a odečte objekt do a od tohoto CTimeSpanobjektu CTimeSpan .
operator == < etc. Porovná dvě relativní časové hodnoty.

Poznámky

CTimeSpan nemá základní třídu.

CTimeSpan funkce převádějí sekundy na různé kombinace dnů, hodin, minut a sekund.

Objekt CTimeSpan je uložen ve __time64_t struktuře, což je 8 bajtů.

Doprovodná třída představuje CTimeabsolutní čas.

Třídy CTime a CTimeSpan třídy nejsou určené pro odvození. Vzhledem k tomu, že neexistují žádné virtuální funkce, velikost obou CTime objektů CTimeSpan a objektů je přesně 8 bajtů. Většina členských funkcí je vložená.

Další informace o použití CTimeSpannajdete v článcích Datum a čas a Správa času v referenčních informacích ke knihovně runtime.

Požadavky

Záhlaví: atltime.h

CTimeSpan Operátory porovnání

Relační operátory.

bool operator==(CTimeSpan span) const throw();
bool operator!=(CTimeSpan span) const throw();
bool operator<(CTimeSpan span) const throw();
bool operator>(CTimeSpan span) const throw();
bool operator<=(CTimeSpan span) const throw();
bool operator>=(CTimeSpan span) const throw();

Parametry

span
Objekt k porovnání

Návratová hodnota

Tyto operátory porovnávají dvě relativní časové hodnoty. TRUE Vrátí, pokud je podmínka pravdivá, jinak FALSE.

Příklad

CTimeSpan ts1(100);
CTimeSpan ts2(110);
ATLASSERT((ts1 != ts2) && (ts1 < ts2) && (ts1 <= ts2));   

CTimeSpan::CTimeSpan

Vytváří objekty CTimeSpan různými způsoby.

CTimeSpan() throw();
CTimeSpan(__time64_t time) throw();

CTimeSpan(
    LONG lDays,
    int nHours,
    int nMins,
    int nSecs) throw();

Parametry

timeSpanSrc
Objekt CTimeSpan , který již existuje.

time
Časová __time64_t hodnota, což je počet sekund v časovém rozsahu.

lDays, nHours, , nMinsnSecs
Dny, hodiny, minuty a sekundy v uvedeném pořadí.

Poznámky

Všechny tyto konstruktory vytvoří nový CTimeSpan objekt inicializovaný se zadaným relativním časem. Každý konstruktor je popsaný níže:

  • CTimeSpan( ); Vytvoří neinicializovaný CTimeSpan objekt.

  • CTimeSpan( const CTimeSpan& );CTimeSpan Vytvoří objekt z jiné CTimeSpan hodnoty.

  • CTimeSpan( __time64_t );CTimeSpan Vytvoří objekt z __time64_t typu.

  • CTimeSpan( LONG, int, int, int );CTimeSpan Vytvoří objekt z komponent s jednotlivými komponentami omezenými na následující oblasti:

    Komponenta Rozsah
    LDays 0–25 000 (přibližně)
    nHours 0-23
    nMins 0-59
    NSecs 0-59

Všimněte si, že ladicí verze knihovny tříd Microsoft Foundation se používá v případě, že jedna nebo více součástí časového dne je mimo rozsah. Je vaší zodpovědností před voláním ověřit argumenty.

Příklad

CTimeSpan ts1;  // Uninitialized time value
CTimeSpan ts2a(ts1); // Copy constructor
CTimeSpan ts2b = ts1; // Copy constructor again
CTimeSpan ts3(100); // 100 seconds
CTimeSpan ts4(0, 1, 5, 12);    // 1 hour, 5 minutes, and 12 seconds   

CTimeSpan::Format

Vygeneruje formátovaný řetězec, který odpovídá tomuto CTimeSpan.

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

Parametry

pFormat, pszFormat
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í CTimeSpan 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:

  • %D Total days in this CTimeSpan

  • %H Hodiny v aktuálním dni

  • %M Počet minut v aktuální hodině

  • %S Sekundy v aktuální minutě

  • %% Znaménko procent

nID
ID řetězce, který identifikuje tento formát.

Návratová hodnota

Objekt CString , který obsahuje formátovaný čas.

Poznámky

Ladicí verze knihovny zkontroluje kódy formátování a ověří, jestli kód není v seznamu výše.

Příklad

CTimeSpan ts(3, 1, 5, 12); // 3 days, 1 hour, 5 min, and 12 sec
CString s = ts.Format(_T("Total days: %D, hours: %H, mins: %M, secs: %S"));
ATLASSERT(s == _T("Total days: 3, hours: 01, mins: 05, secs: 12"));   

CTimeSpan::GetDays

Vrátí hodnotu, která představuje počet celých dnů v tomto CTimeSpan.

LONGLONG GetDays() const throw();

Návratová hodnota

Vrátí počet celých 24hodinových dnů v časovém rozsahu. Tato hodnota může být záporná, pokud je časové rozpětí záporné.

Poznámky

Všimněte si, že letní čas (DST) může způsobit GetDays vrácení potenciálně překvapivý výsledek. Pokud je například DST v platnosti, GetDays hlásí počet dní mezi 1. dubnem a 1. květnem 29, nikoli 30, protože jeden den v dubnu se zkracuje o hodinu, a proto se nezapočítává jako úplný den.

Příklad

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

CTimeSpan::GetHours

Vrátí hodnotu, která představuje počet hodin v aktuálním dni (-23 až 23).

LONG GetHours() const throw();

Návratová hodnota

Vrátí počet hodin v aktuálním dni. Rozsah je -23 až 23.

Příklad

CTimeSpan ts(3, 1, 5, 12); // 3 days, 1 hour, 5 min, and 12 sec
ATLASSERT(ts.GetHours() == 1);
ATLASSERT(ts.GetMinutes() == 5);
ATLASSERT(ts.GetSeconds() == 12);   

CTimeSpan::GetMinutes

Vrátí hodnotu, která představuje počet minut v aktuální hodině (-59 až 59).

LONG GetMinutes() const throw();

Návratová hodnota

Vrátí počet minut v aktuální hodině. Rozsah je -59 až 59.

Příklad

Podívejte se na příklad pro GetHours.

CTimeSpan::GetSeconds

Vrátí hodnotu, která představuje počet sekund v aktuální minutě (-59 až 59).

LONG GetSeconds() const throw();

Návratová hodnota

Vrátí počet sekund v aktuální minutě. Rozsah je -59 až 59.

Příklad

Podívejte se na příklad pro GetHours.

CTimeSpan::GetTimeSpan

Vrátí hodnotu objektu CTimeSpan .

__ time64_t GetTimeSpan() const throw();

Návratová hodnota

Vrátí aktuální hodnotu objektu CTimeSpan .

CTimeSpan::GetTotalHours

Vrátí hodnotu, která představuje celkový počet celých hodin v tomto CTimeSpan.

LONGLONG GetTotalHours() const throw();

Návratová hodnota

Vrátí celkový počet celých hodin v tomto CTimeSpansouboru .

Příklad

CTimeSpan ts(3, 1, 5, 12); // 3 days, 1 hour, 5 min, and 12 sec
ATLASSERT(ts.GetTotalHours() == 73);
ATLASSERT(ts.GetTotalMinutes() == 4385);
ATLASSERT(ts.GetTotalSeconds() == 263112);   

CTimeSpan::GetTotalMinutes

Vrátí hodnotu, která představuje celkový počet celých minut v tomto CTimeSpan.

LONGLONG GetTotalMinutes() const throw();

Návratová hodnota

Vrátí celkový počet celých minut v tomto CTimeSpansouboru .

Příklad

Podívejte se na příklad pro GetTotalHours.

CTimeSpan::GetTotalSeconds

Vrátí hodnotu, která představuje celkový počet celých sekund v tomto CTimeSpanargumentu .

LONGLONG GetTotalSeconds() const throw();

Návratová hodnota

Vrátí celkový počet celých sekund v tomto CTimeSpansouboru .

Příklad

Podívejte se na příklad pro GetTotalHours.

CTimeSpan::operator +, CTimeSpan::operator -

Sčítá a odečte objekty CTimeSpan .

CTimeSpan operator+(CTimeSpan span) const throw();
CTimeSpan operator-(CTimeSpan span) const throw();

Parametry

span
Hodnota, kterou chcete přidat k objektu CTimeSpan .

Návratová hodnota

Objekt CTimeSpan představující výsledek operace.

Poznámky

Tyto dva operátory umožňují sčítat a od sebe od sebe odečítat CTimeSpan objekty.

Příklad

CTimeSpan ts1(3, 1, 5, 12); // 3 days, 1 hour, 5 min, and 12 sec
CTimeSpan ts2(100); // 100 seconds
CTimeSpan ts3 = ts1 + ts2;
ATLASSERT(ts3.GetSeconds() == 52); // 6 mins, 52 secs   

CTimeSpan::operator +=, CTimeSpan::operator -=

Sčítá a odečte objekt do a od tohoto CTimeSpanobjektu CTimeSpan .

CTimeSpan& operator+=(CTimeSpan span) throw();
CTimeSpan& operator-=(CTimeSpan span) throw();

Parametry

span
Hodnota, kterou chcete přidat k objektu CTimeSpan .

Návratová hodnota

Aktualizovaný CTimeSpan objekt.

Poznámky

Tyto operátory umožňují sčítání a odečítání objektu do a od tohoto CTimeSpanobjektu CTimeSpan .

Příklad

CTimeSpan ts1(10); // 10 seconds
CTimeSpan ts2(100); // 100 seconds
ts2 -= ts1;
ATLASSERT(ts2.GetTotalSeconds() == 90);   

CTimeSpan::Serialize64

Poznámka:

Tato metoda je k dispozici pouze v projektech MFC.

Serializuje data přidružená k členské proměnné do archivu nebo z archivu.

CArchive& Serialize64(CArchive& ar);

Parametry

ar
Objekt CArchive , který chcete aktualizovat.

Návratová hodnota

Aktualizovaný CArchive objekt.

Viz také

asctime, _wasctime
_ftime, , _ftime32_ftime64
gmtime, , _gmtime32_gmtime64
localtime, , _localtime32_localtime64
strftime, wcsftime, , _strftime_l_wcsftime_l
time, , _time32_time64
Graf hierarchie
Sdílené třídy ATL/MFC