Электронная библиотека книг Александра Фролова и Григория Фролова.
Shop2You.ru Создайте свой интернет-магазин
Библиотека
Братьев
Фроловых

Программирование для IBM OS/2

© Александр Фролов, Григорий Фролов
Том 25, М.: Диалог-МИФИ, 1993, 286 стр.

[Назад] [Содеожание] [Дальше]

7.4. Другие функции для работы с таймером

В этом разделе мы расскажем о других функциях, предназначенных для работы с таймером, для определения текущего времени и даты.

Функция WinGetCurrentTime

Функция WinGetCurrentTime возвращает текущее время, измеренное в миллисекундах от момента загрузки операционной системы IBM OS/2. Учтите, что если компьютер работает много недель, это значение может переполняться и сбрасываться в ноль.

Прототип функции WinGetCurrentTime приведен ниже:

ULONG WinGetCurrentTime(HAB hab);

Этой функцией удобно пользоваться, например, для измерения продолжительности какого-либо процесса. Для этого нужно вызвать функцию до начала процесса и после, а затем сравнить возвращенные значения. Что же касается определения абсолютного текущего времени и даты, для этого удобнее использовать функцию DosGetDateTime , которую мы опишем ниже.

Функция WinQueryMsgTime

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

Прототип функции WinQueryMsgTime представлен ниже:

ULONG WinQueryMsgTime(HAB hab);

Вы можете использовать эту функцию для измерения времени, прошедшего между обработкой двух сообщений.

Функция DosGetDateTime

Для определения текущего времени и даты удобнее всего использовать функцию DosGetDateTime :

APIRET DosGetDateTime(PDATETIME PDateTime);

Эта функция записывает в стркутуру типа DATETIME информацию о текущем времени и дате. Формат этой структуры приведен ниже:

typedef struct _DATETIME 
{
  UCHAR  hours;       // часы
  UCHAR  minutes;     // минуты
  UCHAR  seconds;     // секунды
  UCHAR  hundredths;  // сотые доли секунды
  UCHAR  day;         // число
  UCHAR  month;       // месяц
  USHORT year;        // год
  SHORT  timezone;    // временной пояс
  UCHAR  weekday;     // день недели
} DATETIME;
[Назад] [Содеожание] [Дальше]