Класс COleDateTimeSpan
Представляет относительное время, интервал времени.
Синтаксис
class COleDateTimeSpan
Участники
Открытые конструкторы
Имя | Описание |
---|---|
COleDateTimeSpan::COleDateTimeSpan | Формирует объект COleDateTimeSpan . |
Открытые методы
Имя | Описание |
---|---|
COleDateTimeSpan::Format | Создает форматируемое строковое представление COleDateTimeSpan объекта. |
COleDateTimeSpan::GetDays | Возвращает часть дня диапазона этого COleDateTimeSpan объекта. |
COleDateTimeSpan::GetHours | Возвращает часовую часть диапазона этого COleDateTimeSpan объекта. |
COleDateTimeSpan::GetMinutes | Возвращает минутную часть диапазона этого COleDateTimeSpan объекта. |
COleDateTimeSpan::GetSeconds | Возвращает вторую часть диапазона этого COleDateTimeSpan объекта. |
COleDateTimeSpan::GetStatus | Возвращает состояние (допустимость) этого COleDateTimeSpan объекта. |
COleDateTimeSpan::GetTotalDays | Возвращает число дней, которое представляет этот COleDateTimeSpan объект. |
COleDateTimeSpan::GetTotalHours | Возвращает количество часов, которое представляет этот COleDateTimeSpan объект. |
COleDateTimeSpan::GetTotalMinutes | Возвращает количество минут, которое представляет этот COleDateTimeSpan объект. |
COleDateTimeSpan::GetTotalSeconds | Возвращает количество секунд, которое представляет этот COleDateTimeSpan объект. |
COleDateTimeSpan::SetDateTimeSpan | Задает значение этого COleDateTimeSpan объекта. |
COleDateTimeSpan::SetStatus | Задает состояние (допустимость) этого COleDateTimeSpan объекта. |
Открытые операторы
Имя | Описание |
---|---|
оператор +, - | Добавление, вычитание и изменение знака для COleDateTimeSpan значений. |
оператор +=, -= | Добавьте и вычитает COleDateTimeSpan значение из этого COleDateTimeSpan значения. |
оператор = | Копирует COleDateTimeSpan значение. |
оператор ==, <, <= | Сравните два COleDateTimeSpan значения. |
оператор double | Преобразует это COleDateTimeSpan значение в double значение . |
Открытые члены данных
Имя | Описание |
---|---|
COleDateTimeSpan::m_span | Содержит базовый double объект.COleDateTimeSpan |
COleDateTimeSpan::m_status | Содержит состояние этого COleDateTimeSpan объекта. |
Замечания
COleDateTimeSpan
не имеет базового класса.
Время COleDateTimeSpan
в днях.
COleDateTimeSpan
используется со своим вспомогательным классом COleDateTime. COleDateTime
инкапсулирует DATE
тип данных автоматизации OLE. COleDateTime
представляет абсолютные значения времени. Все COleDateTime
вычисления включают COleDateTimeSpan
значения. Отношение между этими классами аналогично тому, что между CTime и CTimeSpan.
Дополнительные сведения о параметрах COleDateTime
и COleDateTimeSpan
классах см. в статье "Дата и время: поддержка автоматизации".
Требования
Заголовок: ATLComTime.h
Реляционные операторы COleDateTimeSpan
Операторы сравнения.
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();
Параметры
dateSpan
Объект COleDateTimeSpan
для сравнения.
Возвращаемое значение
Эти операторы сравнивают два значения даты и времени и возвращают значение TRUE, если условие имеет значение true; в противном случае ЗНАЧЕНИЕ FALSE.
Замечания
Примечание.
AtlasSERT будет возникать, если любой операнда недопустим.
Пример
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
.
COleDateTimeSpan() throw();
COleDateTimeSpan(double dblSpanSrc) throw();
COleDateTimeSpan(LONG lDays, int nHours, int nMins, int nSecs) throw();
Параметры
dblSpanSrc
Количество дней, которые необходимо скопировать в новый COleDateTimeSpan
объект.
lDays, nHours, nMins, nSecs
Укажите значения дня и времени для копирования в новый COleDateTimeSpan
объект.
Замечания
Все эти конструкторы создают новые COleDateTimeSpan
объекты, инициализированные указанным значением. Краткое описание каждого из этих конструкторов:
COleDateTimeSpan( ) создает объект, инициализированный
COleDateTimeSpan
до 0.COleDateTimeSpan(
dblSpanSrc
) создаетCOleDateTimeSpan
объект из значения с плавающей запятой.COleDateTimeSpan(
lDays
, ,nHours
nSecs
nMins
) создает объект, инициализированныйCOleDateTimeSpan
для указанных числовых значений.
Для нового COleDateTimeSpan
объекта задано допустимое состояние.
Дополнительные сведения о границах COleDateTimeSpan
значений см. в статье "Дата и время: поддержка автоматизации".
Пример
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
Создает форматируемое строковое представление COleDateTimeSpan
объекта.
CString Format(LPCTSTR pFormat) const;
CString Format(UINT nID) const;
Параметры
pFormat
Строка форматирования, аналогичная строке printf
форматирования. Коды форматирования, предшествующие знаку процента (%
), заменяются соответствующим COleDateTimeSpan
компонентом. Другие символы в строке форматирования копируются без изменений в возвращаемую строку. Ниже приведены значения и значения кодов Format
форматирования:
%H Часы в текущий день
%M Минут в текущем часе
%S Секунды в текущей минуте
%% Знак процента
Четыре указанных выше кодов формата — это только коды, которые будут принимать формат.
-
nID
Идентификатор ресурса для строки элемента управления форматированием.
Возвращаемое значение
Значение CString
, содержащее форматируемое значение даты и времени.
Замечания
Вызовите эти функции для создания форматированного представления значения интервала времени. Если состояние этого COleDateTimeSpan
объекта равно NULL, возвращаемое значение является пустой строкой. Если состояние недопустимо, возвращаемая строка указывается строковым ресурсом IDS_INVALID_DATETIMESPAN.
Краткое описание форм для этой функции выглядит следующим образом:
Format( pFormat )
Эта форма форматирует значение с помощью строки форматирования, содержащей специальные коды форматирования, которые предшествуют знаку процента (%) как и в printf
. Строка форматирования передается в функцию в качестве параметра.
Format( nID )
Эта форма форматирует значение с помощью строки форматирования, содержащей специальные коды форматирования, которые предшествуют знаку процента (%) как и в printf
. Строка форматирования — это ресурс. Идентификатор этого строкового ресурса передается в качестве параметра.
Пример
// 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
Извлекает часть дня этого значения даты и времени.
LONG GetDays() const throw();
Возвращаемое значение
Часть дня этого значения даты и времени.
Замечания
Возвращаемые значения из этого диапазона функций от приблизительно до 3615 000 и 3615 000.
Другие функции, запрашивающие значение COleDateTimeSpan
объекта, см. в следующих функциях-членах:
Пример
COleDateTimeSpan ts(3, 1, 5, 12); // 3 days, 1 hour, 5 min, and 12 sec
ASSERT(ts.GetDays() == 3);
COleDateTimeSpan::GetHours
Извлекает часть часа этого значения даты и времени.
LONG GetHours() const throw();
Возвращаемое значение
Часть часов этого значения даты и времени.
Замечания
Возвращаемые значения из этого диапазона функции — от 23 до 23.
Другие функции, запрашивающие значение COleDateTimeSpan
объекта, см. в следующих функциях-членах:
Пример
COleDateTimeSpan ts(3, 1, 5, 12); // 3 days, 1 hour, 5 min, and 12 sec
ASSERT(ts.GetHours() == 1);
COleDateTimeSpan::GetMinutes
Извлекает минутную часть этого значения даты и времени.
LONG GetMinutes() const throw();
Возвращаемое значение
Часть минут этого значения даты и времени.
Замечания
Возвращаемые значения из этого диапазона функций от – 59 до 59.
Другие функции, запрашивающие значение COleDateTimeSpan
объекта, см. в следующих функциях-членах:
Пример
COleDateTimeSpan ts(3, 1, 5, 12); // 3 days, 1 hour, 5 min, and 12 sec
ASSERT(ts.GetMinutes() == 5);
COleDateTimeSpan::GetSeconds
Извлекает вторую часть этого значения даты и времени.
LONG GetSeconds() const throw();
Возвращаемое значение
Часть секунд этого значения даты и времени.
Замечания
Возвращаемые значения из этого диапазона функций от – 59 до 59.
Другие функции, запрашивающие значение COleDateTimeSpan
объекта, см. в следующих функциях-членах:
Пример
COleDateTimeSpan ts(3, 1, 5, 12); // 3 days, 1 hour, 5 min, and 12 sec
ASSERT(ts.GetSeconds() == 12);
COleDateTimeSpan::GetStatus
Возвращает состояние (допустимость) этого COleDateTimeSpan
объекта.
DateTimeSpanStatus GetStatus() const throw();
Возвращаемое значение
Состояние этого COleDateTimeSpan
значения.
Замечания
Возвращаемое значение определяется перечисленным типом DateTimeSpanStatus
, который определяется в COleDateTimeSpan
классе.
enum DateTimeSpanStatus{
valid = 0,
invalid = 1,
null = 2,
};
Краткое описание этих значений состояния см. в следующем списке:
COleDateTimeSpan::valid
Указывает, что этотCOleDateTimeSpan
объект действителен.COleDateTimeSpan::invalid
Указывает, что этотCOleDateTimeSpan
объект недопустим, то есть его значение может быть неверным.COleDateTimeSpan::null
Указывает, что этотCOleDateTimeSpan
объект имеет значение NULL, т. е. значение не было предоставлено для этого объекта. (Это значение null в смысле базы данных "отсутствие значения", а не значение C++ NULL.)
Состояние COleDateTimeSpan
объекта недопустимо в следующих случаях:
Если этот объект испытал переполнение или переполнение во время арифметической операции назначения, а именно
+=
или-=
.Если этому объекту назначено недопустимое значение.
Если состояние этого объекта было явно задано как недопустимое использование
SetStatus
.
Дополнительные сведения об операциях, которые могут задать недопустимое состояние, см. в разделе COleDateTimeSpan::operator +, - и COleDateTimeSpan::operator +=, -=.
Дополнительные сведения о границах COleDateTimeSpan
значений см. в статье "Дата и время: поддержка автоматизации".
COleDateTimeSpan::GetTotalDays
Извлекает это значение даты и времени, выраженное в днях.
double GetTotalDays() const throw();
Возвращаемое значение
Это значение даты и времени, выраженное в днях. Хотя эта функция прототипируется для возврата двойника, она всегда возвращает целочисленное значение.
Замечания
Возвращаемые значения из этого диапазона функций примерно от 3,65e6 до 3,65e6.
Другие функции, запрашивающие значение COleDateTimeSpan
объекта, см. в следующих функциях-членах:
Пример
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
Извлекает это значение даты и времени, выраженное в часах.
double GetTotalHours() const throw();
Возвращаемое значение
Это значение даты и времени, выраженное в часах. Хотя эта функция прототипируется для возврата двойника, она всегда возвращает целочисленное значение.
Замечания
Возвращаемые значения из этого диапазона функций от приблизительно до 8,77e7 и 8,77e7.
Другие функции, запрашивающие значение COleDateTimeSpan
объекта, см. в следующих функциях-членах:
Пример
См. пример getTotalDays.
COleDateTimeSpan::GetTotalMinutes
Извлекает это значение даты и времени, выраженное в минутах.
double GetTotalMinutes() const throw();
Возвращаемое значение
Это значение даты и времени, выраженное в минутах. Хотя эта функция прототипируется для возврата двойника, она всегда возвращает целочисленное значение.
Замечания
Возвращаемые значения из этого диапазона функций между приблизительно 5,26e9 и 5,26e9.
Другие функции, запрашивающие значение COleDateTimeSpan
объекта, см. в следующих функциях-членах:
Пример
См. пример getTotalDays.
COleDateTimeSpan::GetTotalSeconds
Извлекает это значение даты и времени, выраженное в секундах.
double GetTotalSeconds() const throw();
Возвращаемое значение
Это значение даты и времени, выраженное в секундах. Хотя эта функция прототипируется для возврата двойника, она всегда возвращает целочисленное значение.
Замечания
Возвращаемые значения из этого диапазона функций варьируются примерно от 3.16e11 до 3.16e11.
Другие функции, запрашивающие значение COleDateTimeSpan
объекта, см. в следующих функциях-членах:
Пример
См. пример getTotalDays.
COleDateTimeSpan::m_span
Базовое double
значение для этого COleDateTime
объекта.
double m_span;
Замечания
Это значение выражает интервал даты и времени в днях.
Внимание
Изменение значения в элементе double
данных изменит значение этого COleDateTimeSpan
объекта. Он не изменяет состояние этого COleDateTimeSpan
объекта.
COleDateTimeSpan::m_status
Тип для этого элемента данных — это перечислимый тип DateTimeSpanStatus
, который определяется в COleDateTimeSpan
классе.
DateTimeSpanStatus m_status;
Замечания
enum DateTimeSpanStatus{
valid = 0,
invalid = 1,
null = 2,
};
Краткое описание этих значений состояния см. в следующем списке:
COleDateTimeSpan::valid
Указывает, что этотCOleDateTimeSpan
объект действителен.COleDateTimeSpan::invalid
Указывает, что этотCOleDateTimeSpan
объект недопустим, то есть его значение может быть неверным.COleDateTimeSpan::null
Указывает, что этотCOleDateTimeSpan
объект имеет значение NULL, т. е. значение не было предоставлено для этого объекта. (Это значение null в смысле базы данных "отсутствие значения", а не значение C++ NULL.)
Состояние COleDateTimeSpan
объекта недопустимо в следующих случаях:
Если этот объект испытал переполнение или переполнение во время арифметической операции назначения, а именно
+=
или-=
.Если этому объекту назначено недопустимое значение.
Если состояние этого объекта было явно задано как недопустимое с помощью SetStatus.
Дополнительные сведения об операциях, которые могут задать недопустимое состояние, см. в разделе COleDateTimeSpan::operator +, - и COleDateTimeSpan::operator +=, -=.
Внимание
Этот элемент данных предназначен для сложных ситуаций программирования. Вы должны использовать встроенные функции-члены GetStatus и SetStatus. Дополнительные SetStatus
предупреждения см. в отношении явного задания этого элемента данных.
Дополнительные сведения о границах COleDateTimeSpan
значений см. в статье "Дата и время: поддержка автоматизации".
COleDateTimeSpan::operator =
Копирует COleDateTimeSpan
значение.
COleDateTimeSpan& operator=(double dblSpanSrc) throw();
Замечания
Этот перегруженный оператор назначения копирует исходное значение даты и времени в этот COleDateTimeSpan
объект.
COleDateTimeSpan::operator +, -
Добавление, вычитание и изменение знака для COleDateTimeSpan
значений.
COleDateTimeSpan operator+(const COleDateTimeSpan& dateSpan) const throw();
COleDateTimeSpan operator-(const COleDateTimeSpan& dateSpan) const throw();
COleDateTimeSpan operator-() const throw();
Замечания
Первые два оператора позволяют добавлять и вычитать значения даты и времени. Третий позволяет изменить знак значения даты и времени.
Если любой из операндов имеет значение NULL, состояние результирующего COleDateTimeSpan
значения равно NULL.
Если один из операндов недопустим, а другой не имеет значения NULL, состояние результирующего COleDateTimeSpan
значения недопустимо.
Дополнительные сведения о допустимых, недопустимых и пустых значениях состояния см. в переменной m_status члена.
Пример
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 +=, -=
Добавьте и вычитает COleDateTimeSpan
значение из этого COleDateTimeSpan
значения.
COleDateTimeSpan& operator+=(const COleDateTimeSpan dateSpan) throw();
COleDateTimeSpan& operator-=(const COleDateTimeSpan dateSpan) throw();
Замечания
Эти операторы позволяют добавлять и вычитать значения даты и времени из этого COleDateTimeSpan
объекта. Если любой из операндов имеет значение NULL, состояние результирующего COleDateTimeSpan
значения равно NULL.
Если один из операндов недопустим, а другой не имеет значения NULL, состояние результирующего COleDateTimeSpan
значения недопустимо.
Дополнительные сведения о допустимых, недопустимых и пустых значениях состояния см. в переменной m_status члена.
Пример
COleDateTimeSpan ts1(10.0); // 10 days
COleDateTimeSpan ts2(100.0); // 100 days
ts2 -= ts1;
ASSERT(ts2.GetTotalDays() == 90);
COleDateTimeSpan::operator double
Преобразует это COleDateTimeSpan
значение в double
значение .
operator double() const throw();
Замечания
Этот оператор возвращает значение этого COleDateTimeSpan
значения в виде числа дней с плавающей запятой.
COleDateTimeSpan::SetDateTimeSpan
Задает значение этого значения даты и времени.
void SetDateTimeSpan(LONG lDays, int nHours, int nMins, int nSecs) throw();
Параметры
lDays, nHours, nMins, nSecs
Укажите значения даты и интервала времени, скопированные в этот COleDateTimeSpan
объект.
Замечания
Сведения о функциях, запрашивающих значение COleDateTimeSpan
объекта, см. в следующих функциях-членах:
Пример
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
Задает состояние (допустимость) этого COleDateTimeSpan
объекта.
void SetStatus(DateTimeSpanStatus status) throw();
Параметры
состояние
Новое значение состояния для этого COleDateTimeSpan
объекта.
Замечания
Значение параметра Status определяется перечисленным типомDateTimeSpanStatus
, который определяется в COleDateTimeSpan
классе.
enum DateTimeSpanStatus{
valid = 0,
invalid = 1,
null = 2,
};
Краткое описание этих значений состояния см. в следующем списке:
COleDateTimeSpan::valid
Указывает, что этотCOleDateTimeSpan
объект действителен.COleDateTimeSpan::invalid
Указывает, что этотCOleDateTimeSpan
объект недопустим, то есть его значение может быть неверным.COleDateTimeSpan::null
Указывает, что этотCOleDateTimeSpan
объект имеет значение NULL, т. е. значение не было предоставлено для этого объекта. (Это значение null в смысле базы данных "отсутствие значения", а не значение C++ NULL.)Внимание
Эта функция предназначена для сложных ситуаций программирования. Эта функция не изменяет данные в этом объекте. Чаще всего оно используется для задания состояния null или недопустимого. Обратите внимание, что оператор назначения (оператор =) и SetDateTimeSpan задают состояние объекта на основе исходных значений.
Пример
// 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);
См. также
Класс COleDateTime
Класс CTime
Класс CTimeSpan
Диаграмма иерархии
Общие классы ATL/MFC