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


Функция SystemTimeToVariantTime (oleauto.h)

Преобразует системное время в вариантное представление.

Синтаксис

INT SystemTimeToVariantTime(
  [in]  LPSYSTEMTIME lpSystemTime,
  [out] DOUBLE       *pvtime
);

Параметры

[in] lpSystemTime

Системное время.

[out] pvtime

Время варианта.

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

Функция возвращает значение TRUE при успешном выполнении и FALSE в противном случае.

Комментарии

Вариантное время хранится в виде 8-байтового реального значения (double), представляющего дату между 1 января 1900 г. и 31 декабря 9999 г. включительно. Значение 2.0 представляет 1 января 1900 года; 3.0 представляет 2 января 1900 г. и т. д. При добавлении 1 к значению дата увеличивается на день. Дробная часть значения представляет время суток. Таким образом, 2,5 представляет полдень 1 января 1900 года; 3.25 представляет собой 6:00 утра 2 января 1900 года и т. д. Отрицательные числа представляют даты до 30 декабря 1899 года.

Вариантное время разрешается в одну секунду. Все миллисекунда в входной дате игнорируются.

Примечание

При работе с вариантным временем учитывайте дополнительный день, добавляемый в високосные годы, который может привести к непредвиденным результатам, если необработанные действия не обрабатываются. Дополнительные сведения см. в разделе Готовность к високосным годам.

Структура SYSTEMTIME полезна по следующим причинам:

  • Он охватывает все периоды времени и даты. Ms-DOS дата и время могут представлять только те даты, которые относятся к 1.01.1980–31.12.2107.
  • Все элементы даты и времени легко доступны без необходимости выполнять битовое декодирование.
  • Функции форматирования данных национальной поддержки данных и времени GetDateFormat и GetTimeFormat принимают значение LPSYSTEMTIME в качестве входных данных.
  • Это формат данных времени и даты по умолчанию, поддерживаемый Windows.
Функция SystemTimeToVariantTime принимает недопустимые даты и пытается исправить их при разрешении во время VARIANT. Например, недопустимая дата, например 29.02.2001, будет разрешаться на 01.03.2001. Исправлены только дни, поэтому недопустимые значения месяца приводят к ошибке. Количество дней должно находиться в диапазоне от 1 до 31. Отрицательные дни и дни больше 31 приводят к ошибке. День меньше 31, но больше, чем максимальный день в этом месяце, имеет день повышен до соответствующего дня следующего месяца. День, равный нулю, разрешается как последний день предыдущего месяца. Например, недопустимые даты, такие как 02.0.2001, будут разрешаться в 31.01.2001.

Требования

Требование Значение
Целевая платформа Windows
Header oleauto.h
Библиотека OleAut32.lib
DLL OleAut32.dll