Программирование для 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; |