Поделиться через


Класс CTimeSpan

Количество времени, которое внутренне хранится в виде количества секунд в интервале времени.

Синтаксис

class CTimeSpan

Участники

Открытые конструкторы

Имя Описание
CTimeSpan::CTimeSpan CTimeSpan Создает объекты различными способами.

Открытые методы

Имя Описание
CTimeSpan::Format Преобразует объект CTimeSpan в форматированную строку.
CTimeSpan::GetDays Возвращает значение, представляющее количество полных дней в этом CTimeSpan.
CTimeSpan::GetHours Возвращает значение, представляющее количество часов в текущий день (–23–23).
CTimeSpan::GetMinutes Возвращает значение, представляющее количество минут в текущем часе (–59–59).
CTimeSpan::GetSeconds Возвращает значение, представляющее количество секунд в текущей минуте (–59–59).
CTimeSpan::GetTimeSpan Возвращает значение CTimeSpan объекта.
CTimeSpan::GetTotalHours Возвращает значение, представляющее общее количество полных часов в этом CTimeSpan.
CTimeSpan::GetTotalMinutes Возвращает значение, представляющее общее количество полных минут в этом CTimeSpan.
CTimeSpan::GetTotalSeconds Возвращает значение, представляющее общее количество полных секунд в этом CTimeSpan.
CTimeSpan::Serialize64 Сериализует данные в архив или из архива.

Операторы

Имя Описание
operator + - Добавляет и вычитает CTimeSpan объекты.
operator += -= Добавляет и вычитает CTimeSpan объект в этот объект и из этого CTimeSpan.
operator == < etc. Сравнивает два относительных значения времени.

Замечания

CTimeSpan не имеет базового класса.

CTimeSpan функции преобразуют секунды в различные сочетания дней, часов, минут и секунд.

Объект CTimeSpan хранится в __time64_t структуре, которая составляет 8 байт.

Класс-компаньон CTime, представляет абсолютное время.

CTimeSpan Классы CTime и классы не предназначены для производных. Так как виртуальные функции отсутствуют, размер обоих CTime CTimeSpan объектов составляет ровно 8 байт. Большинство функций-членов являются встроенными.

Дополнительные сведения об использовании CTimeSpanсм. в статьях "Дата и время" и "Управление временем" в справочнике по библиотеке времени выполнения.

Требования

Заголовок: atltime.h

CTimeSpan Операторы сравнения

Операторы сравнения.

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();

Параметры

span
Объект , подлежащий сравнению.

Возвращаемое значение

Эти операторы сравнивают два относительных значения времени. Они возвращают TRUE значение, если условие имеет значение true; в противном случае FALSE.

Пример

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

CTimeSpan::CTimeSpan

CTimeSpan Создает объекты различными способами.

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

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

Параметры

timeSpanSrc
Объект CTimeSpan , который уже существует.

time
__time64_t Значение времени, которое является числом секунд в интервале времени.

lDays, , nHoursnMinsnSecs
Дни, часы, минуты и секунды соответственно.

Замечания

Все эти конструкторы создают новый CTimeSpan объект, инициализированный с заданным относительным временем. Каждый конструктор описан ниже:

  • CTimeSpan( ); Создает неинициализированный CTimeSpan объект.

  • CTimeSpan( const CTimeSpan& ); Создает объект из другого CTimeSpan CTimeSpan значения.

  • CTimeSpan( __time64_t );CTimeSpan Создает объект из __time64_t типа.

  • CTimeSpan( LONG, int, int, int );CTimeSpan Создает объект из компонентов с каждым компонентом, ограниченным следующими диапазонами:

    Компонент Диапазон
    lDays 0-25 000 (приблизительно)
    nHours 0-23
    nMins 0-59
    nSecs 0-59

Обратите внимание, что отладочная версия библиотеки классов Microsoft Foundation утверждает, что один или несколько компонентов дня времени выходит за пределы диапазона. Перед вызовом вы несете ответственность за проверку аргументов.

Пример

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

Создает отформатированную строку, соответствующую этому CTimeSpan.

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

Параметры

pFormat, pszFormat
Строка форматирования, аналогичная строке printf форматирования. Коды форматирования, предшествующие знаку процента (%), заменяются соответствующим CTimeSpan компонентом. Другие символы в строке форматирования копируются без изменений в возвращаемую строку. Ниже приведены значения и значения кодов Format форматирования:

  • %D Всего дней в этом CTimeSpan

  • %H Часы в текущий день

  • %M Минуты в текущем часе

  • %S Секунды в текущей минуте

  • %% Знак процента

nID
Идентификатор строки, определяющей этот формат.

Возвращаемое значение

Объект CString , содержащий форматируемое время.

Замечания

Версия отладки библиотеки проверяет коды форматирования и утверждает, не указан ли код в приведенном выше списке.

Пример

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

Возвращает значение, представляющее количество полных дней в этом CTimeSpan.

LONGLONG GetDays() const throw();

Возвращаемое значение

Возвращает количество полных 24-часовых дней в интервале времени. Это значение может быть отрицательным, если период времени является отрицательным.

Замечания

Обратите внимание, что время летнего времени (DST) может привести GetDays к возврату потенциально удивительного результата. Например, если DST действует, GetDays сообщает количество дней от 1 апреля до 1 мая по 29 мая, а не 30, так как один день в апреле сокращается на час и поэтому не считается полным днем.

Пример

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

CTimeSpan::GetHours

Возвращает значение, представляющее количество часов в текущий день (–23–23).

LONG GetHours() const throw();

Возвращаемое значение

Возвращает количество часов в текущий день. Диапазон составляет от -23 до 23.

Пример

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

Возвращает значение, представляющее количество минут в текущем часе (–59–59).

LONG GetMinutes() const throw();

Возвращаемое значение

Возвращает количество минут в текущем часе. Диапазон составляет от -59 до 59.

Пример

Пример см. в примере GetHours.

CTimeSpan::GetSeconds

Возвращает значение, представляющее количество секунд в текущей минуте (–59–59).

LONG GetSeconds() const throw();

Возвращаемое значение

Возвращает количество секунд в текущей минуте. Диапазон составляет от -59 до 59.

Пример

Пример см. в примере GetHours.

CTimeSpan::GetTimeSpan

Возвращает значение CTimeSpan объекта.

__ time64_t GetTimeSpan() const throw();

Возвращаемое значение

Возвращает текущее значение CTimeSpan объекта.

CTimeSpan::GetTotalHours

Возвращает значение, представляющее общее количество полных часов в этом CTimeSpan.

LONGLONG GetTotalHours() const throw();

Возвращаемое значение

Возвращает общее количество полных часов в этом CTimeSpan.

Пример

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

Возвращает значение, представляющее общее количество полных минут в этом CTimeSpan.

LONGLONG GetTotalMinutes() const throw();

Возвращаемое значение

Возвращает общее количество полных минут в этом CTimeSpan.

Пример

Пример см. в примере GetTotalHours.

CTimeSpan::GetTotalSeconds

Возвращает значение, представляющее общее количество полных секунд в этом CTimeSpan.

LONGLONG GetTotalSeconds() const throw();

Возвращаемое значение

Возвращает общее количество полных секунд в этом CTimeSpan.

Пример

Пример см. в примере GetTotalHours.

CTimeSpan::operator +, CTimeSpan::operator -

Добавляет и вычитает CTimeSpan объекты.

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

Параметры

span
Значение, добавляемое в CTimeSpan объект.

Возвращаемое значение

CTimeSpan Объект, представляющий результат операции.

Замечания

Эти два оператора позволяют добавлять и вычитать CTimeSpan объекты друг другу.

Пример

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

Добавляет и вычитает CTimeSpan объект в этот объект и из этого CTimeSpan.

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

Параметры

span
Значение, добавляемое в CTimeSpan объект.

Возвращаемое значение

Обновленный CTimeSpan объект.

Замечания

Эти операторы позволяют добавлять и вычитать CTimeSpan объект и из этого CTimeSpan.

Пример

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

CTimeSpan::Serialize64

Примечание.

Этот метод доступен только в проектах MFC.

Сериализует данные, связанные с переменной-членом, в архив или из нее.

CArchive& Serialize64(CArchive& ar);

Параметры

ar
Объект CArchive , который требуется обновить.

Возвращаемое значение

Обновленный CArchive объект.

См. также

asctime, _wasctime
_ftime, , _ftime32_ftime64
gmtime, , _gmtime32_gmtime64
localtime, , _localtime32_localtime64
strftime, , wcsftime_strftime_l_wcsftime_l
time, , _time32_time64
Диаграмма иерархии
Общие классы ATL/MFC