Udostępnij za pośrednictwem


CTimeSpan Klasa

Czas, który jest przechowywany wewnętrznie jako liczba sekund w przedziale czasu.

Składnia

class CTimeSpan

Elementy członkowskie

Konstruktory publiczne

Nazwa/nazwisko opis
CTimeSpan::CTimeSpan Konstruuje CTimeSpan obiekty na różne sposoby.

Metody publiczne

Nazwa/nazwisko opis
CTimeSpan::Format Konwertuje CTimeSpan element na sformatowany ciąg.
CTimeSpan::GetDays Zwraca wartość reprezentującą liczbę pełnych dni w tym obiekcie CTimeSpan.
CTimeSpan::GetHours Zwraca wartość reprezentującą liczbę godzin w bieżącym dniu (od 23 do 23).
CTimeSpan::GetMinutes Zwraca wartość reprezentującą liczbę minut w bieżącej godzinie (od 59 do 59).
CTimeSpan::GetSeconds Zwraca wartość reprezentującą liczbę sekund w bieżącej minucie (od 59 do 59).
CTimeSpan::GetTimeSpan Zwraca wartość CTimeSpan obiektu.
CTimeSpan::GetTotalHours Zwraca wartość reprezentującą łączną liczbę pełnych godzin w tym obiekcie CTimeSpan.
CTimeSpan::GetTotalMinutes Zwraca wartość reprezentującą łączną liczbę pełnych minut w tym CTimeSpanobiekcie .
CTimeSpan::GetTotalSeconds Zwraca wartość reprezentującą łączną liczbę pełnych sekund w tym obiekcie CTimeSpan.
CTimeSpan::Serialize64 Serializuje dane do lub z archiwum.

Operatory

Nazwa/nazwisko opis
operator + - Dodaje i odejmuje CTimeSpan obiekty.
operator += -= Dodaje i odejmuje CTimeSpan obiekt do i z tego CTimeSpanobiektu .
operator == < etc. Porównuje dwie względne wartości czasu.

Uwagi

CTimeSpan nie ma klasy bazowej.

CTimeSpan funkcje konwertują sekundy na różne kombinacje dni, godzin, minut i sekund.

Obiekt CTimeSpan jest przechowywany w __time64_t strukturze, czyli 8 bajtów.

Klasa towarzysza , CTimereprezentuje bezwzględny czas.

Klasy CTime i CTimeSpan nie są przeznaczone do wyprowadzania. Ponieważ nie ma żadnych funkcji wirtualnych, rozmiar obiektów i CTime CTimeSpan wynosi dokładnie 8 bajtów. Większość funkcji składowych jest wbudowanych.

Aby uzyskać więcej informacji na temat korzystania z programu CTimeSpan, zobacz artykuły Data i godzina oraz Zarządzanie czasem w dokumentacji biblioteki czasu wykonywania.

Wymagania

Nagłówek: atltime.h

CTimeSpan Operatory porównania

Operatory porównania.

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
Obiekt do porównania.

Wartość zwracana

Te operatory porównują dwie względne wartości czasu. Zwracają TRUE wartość , jeśli warunek ma wartość true; w przeciwnym razie FALSE.

Przykład

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

CTimeSpan::CTimeSpan

Konstruuje CTimeSpan obiekty na różne sposoby.

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

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

Parametry

timeSpanSrc
CTimeSpan Obiekt, który już istnieje.

time
__time64_t Wartość czasu, która jest liczbą sekund w przedziale czasu.

lDays, , nHours, , nMinsnSecs
Odpowiednio dni, godziny, minuty i sekundy.

Uwagi

Wszystkie te konstruktory tworzą nowy CTimeSpan obiekt zainicjowany z określonym czasem względnym. Każdy konstruktor jest opisany poniżej:

  • CTimeSpan( ); Tworzy niezainicjowany CTimeSpan obiekt.

  • CTimeSpan( const CTimeSpan& );CTimeSpan Tworzy obiekt z innej CTimeSpan wartości.

  • CTimeSpan( __time64_t );CTimeSpan Tworzy obiekt z __time64_t typu.

  • CTimeSpan( LONG, int, int, int );CTimeSpan Tworzy obiekt ze składników z poszczególnymi składnikami ograniczonymi do następujących zakresów:

    Składnik Zakres
    lDays 0–25 000 (około)
    nHours 0-23
    nMins 0-59
    nSecs 0-59

Należy pamiętać, że wersja debugowania biblioteki klas programu Microsoft Foundation potwierdza, że co najmniej jeden składnik dnia jest poza zakresem. Twoim obowiązkiem jest zweryfikowanie argumentów przed wywołaniem.

Przykład

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

Generuje sformatowany ciąg odpowiadający temu CTimeSpanelementowi .

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

Parametry

pFormat, pszFormat
Ciąg formatowania podobny do printf ciągu formatowania. Kody formatowania poprzedzone znakiem procentowym (%) są zastępowane przez odpowiedni CTimeSpan składnik. Inne znaki w ciągu formatowania są kopiowane bez zmian do zwracanego ciągu. Poniżej wymieniono wartość i znaczenie kodów formatowania dla Format :

  • %D Łączna liczba dni w tym CTimeSpan

  • %H Godziny w bieżącym dniu

  • %M Minuty w bieżącej godzinie

  • %S Sekundy w bieżącej minucie

  • %% Znak procentu

nID
Identyfikator ciągu identyfikującego ten format.

Wartość zwracana

CString Obiekt, który zawiera sformatowany czas.

Uwagi

Wersja debugowania biblioteki sprawdza kody formatowania i potwierdza, czy kod nie znajduje się na powyższej liście.

Przykład

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

Zwraca wartość reprezentującą liczbę pełnych dni w tym obiekcie CTimeSpan.

LONGLONG GetDays() const throw();

Wartość zwracana

Zwraca liczbę pełnych 24-godzinnych dni w przedziale czasu. Ta wartość może być ujemna, jeśli przedział czasu jest ujemny.

Uwagi

Należy pamiętać, że czas letni (DST) może spowodować GetDays zwrócenie potencjalnie zaskakującego wyniku. Na przykład, gdy DST jest w mocy, GetDays raportuje liczbę dni między 1 kwietnia a 1 maja jako 29, a nie 30, ponieważ jeden dzień w kwietniu jest skracany o godzinę i dlatego nie jest liczone jako pełny dzień.

Przykład

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

CTimeSpan::GetHours

Zwraca wartość reprezentującą liczbę godzin w bieżącym dniu (od 23 do 23).

LONG GetHours() const throw();

Wartość zwracana

Zwraca liczbę godzin w bieżącym dniu. Zakres wynosi od -23 do 23.

Przykład

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

Zwraca wartość reprezentującą liczbę minut w bieżącej godzinie (od 59 do 59).

LONG GetMinutes() const throw();

Wartość zwracana

Zwraca liczbę minut w bieżącej godzinie. Zakres wynosi od -59 do 59.

Przykład

Zobacz przykład dla elementu GetHours.

CTimeSpan::GetSeconds

Zwraca wartość reprezentującą liczbę sekund w bieżącej minucie (od 59 do 59).

LONG GetSeconds() const throw();

Wartość zwracana

Zwraca liczbę sekund w bieżącej minucie. Zakres wynosi od -59 do 59.

Przykład

Zobacz przykład dla elementu GetHours.

CTimeSpan::GetTimeSpan

Zwraca wartość CTimeSpan obiektu.

__ time64_t GetTimeSpan() const throw();

Wartość zwracana

Zwraca bieżącą wartość CTimeSpan obiektu.

CTimeSpan::GetTotalHours

Zwraca wartość reprezentującą łączną liczbę pełnych godzin w tym obiekcie CTimeSpan.

LONGLONG GetTotalHours() const throw();

Wartość zwracana

Zwraca łączną liczbę pełnych godzin w tym CTimeSpanobiekcie .

Przykład

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

Zwraca wartość reprezentującą łączną liczbę pełnych minut w tym CTimeSpanobiekcie .

LONGLONG GetTotalMinutes() const throw();

Wartość zwracana

Zwraca łączną liczbę pełnych minut w tym CTimeSpanobiekcie .

Przykład

Zobacz przykład dla elementu GetTotalHours.

CTimeSpan::GetTotalSeconds

Zwraca wartość reprezentującą łączną liczbę pełnych sekund w tym obiekcie CTimeSpan.

LONGLONG GetTotalSeconds() const throw();

Wartość zwracana

Zwraca łączną liczbę pełnych sekund w tym CTimeSpanobiekcie .

Przykład

Zobacz przykład dla elementu GetTotalHours.

CTimeSpan::operator +, CTimeSpan::operator -

Dodaje i odejmuje CTimeSpan obiekty.

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

Parametry

span
Wartość do dodania CTimeSpan do obiektu.

Wartość zwracana

CTimeSpan Obiekt reprezentujący wynik operacji.

Uwagi

Te dwa operatory umożliwiają dodawanie i odejmowanie CTimeSpan obiektów do i ze sobą.

Przykład

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

Dodaje i odejmuje CTimeSpan obiekt do i z tego CTimeSpanobiektu .

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

Parametry

span
Wartość do dodania CTimeSpan do obiektu.

Wartość zwracana

Zaktualizowany CTimeSpan obiekt.

Uwagi

Te operatory umożliwiają dodawanie i odejmowanie CTimeSpan obiektu do i z tego CTimeSpanobiektu .

Przykład

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

CTimeSpan::Serialize64

Uwaga

Ta metoda jest dostępna tylko w projektach MFC.

Serializuje dane skojarzone ze zmienną składową do lub z archiwum.

CArchive& Serialize64(CArchive& ar);

Parametry

ar
CArchive Obiekt, który chcesz zaktualizować.

Wartość zwracana

Zaktualizowany CArchive obiekt.

Zobacz też

asctime, _wasctime
_ftime, , _ftime32_ftime64
gmtime, , _gmtime32_gmtime64
localtime, , _localtime32_localtime64
strftime, , wcsftime, , _strftime_l_wcsftime_l
time, , _time32_time64
Wykres hierarchii
Klasy udostępnione ATL/MFC