Класс времени QTime

Класс времени QTime

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

Для работы со временем библиотека Qt предоставляет класс QTime. Как и в случае с объектами даты, с объектами времени можно проводить операции сравнения ==, !=, <, <=, > или >=. Объекты времени способны хранить время с точностью до миллисекунд. В конструктор класса QTime передаются четыре параметра. Первый параметр задает часы, второй — минуты, третий — секунды, а четвертый — миллисекунды. Третий и четвертый параметры можно опустить, по умолчанию они равны нулю. Например:

QTime time(20, 4);

Эти значения можно устанавливать и после создания объекта времени с помощью метода setHMS(). Например:

QTime time;
time.setHMS (20, 4, 23, 3);

Для получения значений часов, минут, секунд и миллисекунд, установленных в объекте времени, в классе QTime определены следующие методы:

hour() — возвращает положительные значения часа в диапазоне от 0 до 23;

minute() — возвращает целое значение, обозначающее минуты, в диапазоне от 0 до 59;

second() — возвращает целое значение, обозначающее секунды, в диапазоне от 0 до 59;

msec() — возвращает целое значение в диапазоне от 0 до 999, представляющее собой миллисекунды.

Класс QTime предоставляет метод toString() для передачи данных объекта времени в виде строки. В этот метод, в качестве параметра, можно передать одно из форматов времени или задать свой собственный. Например:

QTime time(20, 4, 23, 3);
QString str;
str = time.toString(«hh:mm:ss.zzz»); //str = «20:04:23.003»
str = time.toString(«h:m:s ap»); //str = «8:4:23 pm»

При помощи статического метода fromString() можно произвести преобразование из строкового типа в тип QTime. Для этого, в первом параметре метода нужно передать одно из значений форматов.

Получить измененный объект времени можно, добавив или отняв значения секунд (или миллисекунд) от существующего объекта. Эти значения передаются в методы addSecs() и addMSecs(). Для получения текущего времени в классе QTime содержится статический метод currentTime ().

При помощи метода start() можно начать отсчет времени, а для того чтобы узнать сколько времени прошло с момента начала отсчета, следует вызвать метод elapsed(). Например, на базе этих методов можно сделать небольшой профайлер.

Следующий пример вычисляет время работы функции test():

QTime time;
time.start () ;
test();
qDebug() << «Время работы функции test() равно »
<< time.elapsed()
<< «миллисекунд»
<< endl;

Недостаток класса QTime состоит в ограничении 24-часовым интервалом, по истечении которого отсчет будет производиться с нуля. Для решения этой проблемы можно воспользоваться классом QDateTime.

Объекты класса QDateTime содержат в себе дату и время. Вызовом метода date() можно получить объект даты QDate, а вызов time() возвращает объект времени QTime. Этот класс также содержит методы toString() для представления данных в виде строки.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *