Класс 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
, , nHours
nMins
nSecs
Дни, часы, минуты и секунды соответственно.
Замечания
Все эти конструкторы создают новый 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