Класс даты QDate

Класс даты QDate

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

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

QDate date(2007, 10, 25);

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

QDate date;
date.setDate(2007, 10, 25);

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

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

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

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

Метод toString() позволяет получить текстовое представление даты.

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

QDate date(2007, 10, 25);
QString str;
str = date.toString(«d.M.yy»); //str — «3.7.07»
str = date.toString(«dd/MM/yy»); //str — «03/07/04»
str = date.toString(«yyyy.MMM.ddd») ; //str = «2007.июл.Сб»
str = date.toString(«yyyy.MMMM.dddd»);//str = «2007.Июль.суббота»

При помощи метода addDays() можно получить измененную дату, добавив или отняв от нее дни. Действия методов addMonths() и addYears() аналогичны, но разница в том, что они оперируют месяцами и годами. Например:

QDate date(2007, 1, 3);
QDate date2 = date.addDays(-7);
QString str = date2.toString(«dd/MM/yy»); //str = «27/12/06»

Класс QDate предоставляет метод fromString(), позволяющий проводить обратное преобразование из строкового типа к типу QDate. Для этого, в первом параметре метода нужно передать формат. Одна из самых частых операций — получение текущей даты. Для этого нужно вызвать метод currentDate().

При помощи метода daysTo() можно узнать разницу в днях между двумя датами. Следующий пример определяет количество дней от текущей даты до Нового года:

QDate dateToday = QDate::currentDate();
QDate dateNewYear(dateToday.year(), 12, 31);
qDebug() << «Осталось » << dateToday.daysTo(dateNewYear) << » дней до Нового года»;

Объекты дат можно сравнивать друг с другом, для чего в классе QDate определены операторы ==, !=, <, <=, > и >=. Например:

QDate datel(2007, 1, 3);
QDate date2(2007, 1, 5);
bool b = (datel == date2); //b = false

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

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