Дата и время

   
На этом шаге рассмотрим переопределение специализированных методов обработки событий.

   
Приложениям часто требуется информация о дате и времени, например, для выдачи отчетной информации или для реализации часов. Qt предоставляет для работы с датой и временем три класса: QDate, QTime и QDateTime, определенных в заголовочных файлах QDate, QTime и QDateTime.

   
Класс QDate представляет собой структуру данных для хранения дат и проведения с ними разного рода операций. В конструктор класса QDate передаются три целочисленных параметра. Первым передается год, вторым — месяц, а третьим — день. Например, создадим объект, который будет содержать дату 8 марта 2015 года:

QDate date(2015, 3, 8);

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

QDate date;
date.setDate(2015, 3, 8);

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

  • year() — возвращает год в диапазоне от 1752 до 8000;
  • month() — возвращает целое значение месяца в диапазоне от 1 до 12 (с января по декабрь);
  • day() — возвращает день месяца в диапазоне от 1 до 31.

   
С помощью метода daysInMonth() можно узнать количество дней в месяце, а с помощью метода daysInYear() — количество дней в году.

   
Для получения дня недели следует вызвать метод dayOfWeek(). Для получения порядкового номера дня в году служит метод dayOfYear(). Можно также узнать номер недели, для чего нужно вызвать метод weekNumber().

   
Метод toString() позволяет получить текстовое представление даты, а в качестве параметра можно передать одно из значений, указанных в табл. 1.

Таблица 1. Перечисления DateFormat пространства имен Qt

КонстантаЗначениеОписание
TextDate0x0000Специальный формат Qt (определен по умолчанию)
ISODate0x0001Расширенный формат ISO 8601 (YYYY-MM-DD)
SystemLocaleDate0x0002Формат, зависящий от установленного в операционной систе-ме языка страны
LocaleDate0x0003Формат, использующий локализацию приложения, которая устанавливается вызовом метода QLocale::setDefault(). Если он не установлен, то используется формат SystemLocaleDate

   
Если в таблице не приведен нужный вам формат, то можно определить свой собственный, передав в метод toString() строку-шаблон, описывающую его. Например:

QDate date(2015, 3, 8);
QString str;
str = date.toString("d.M.yy"); //str = "8.3.15"
str = date.toString("dd/MM/yy"); //str = "08/03/15"
str = date.toString("yyyy.MMM.ddd"); //str = "2015.мар.Вс"
str = date.toString("yyyy.MMMM.dddd");//str = "2015.Март.воскресенье"

   
Результат работы приложения приведен на рис. 1.


Рис.1. Примеры отображения даты

   
Файлы приложения можно взять Предыдущий шаг
Содержание
Следующий шаг



Вы можете оставить комментарий, или Трекбэк с вашего сайта.

Оставить комментарий