Qt - przetwarzanie dat czyli klasa QDate

Stronę tą wyświetlono już: 23 razy

Klasa QDate dostępna po załączeniu pliku QDate umożliwia przechowywanie i przetwarzanie dat.

Metody statyczne

Oto metody statyczne, które umożliwiają pozyskanie obiektu klasy QDate:

  • currentDate - zwraca obiekt QDate zawierający bieżącą datę;
  • fromJulianDay - zwraca obiekt klasy QDate zawierający datę powstałą na podstawie podanej liczby dni według kalendarza juliańskiego;
  • fromString - zwraca obiekt QDate z datą pozyskaną z tekstu na podstawie określonego formatowania
  • isLeapYear - zwraca prawdę, jeżeli podany jako argument rok jest rokiem przestępnym;
  • isValid - ta metoda zwraca prawdę, jeżeli podany rok, miesiąc i dzień jest poprawną datą;
  • longDayName - zwraca na podstawie numeru dnia jego pełną nazwę;
  • longMonthName - zwraca na podstawie numeru miesiąca jego pełną nazwę;
  • shortDayName - zwraca na podstawie numeru dnia jego skróconą nazwę;
  • shortMonthName - zwraca na podstawie numeru miesiąca jego skróconą nazwę

Przykład użycia metody fromString

Listing 1
  1. qDebug() << QDate::fromString("01-01-2003", "dd-MM-yyyy");
  2. qDebug() << QDate::fromString("01-Sty-2003", "dd-MMM-yyyy");
  3. qDebug() << QDate::fromString("01-Styczeń-2003", "dd-MMMM-yyyy");
  4. qDebug() << QDate::fromString("01-Styczeń-03", "dd-MMMM-yy");

Wynik działania powyższego kodu:

QDate("2003-01-01")
QDate("2003-01-01")
QDate("2003-01-01")
QDate("1903-01-01")

Przykład użycia metod longDayName i shortDayName

Listing 2
  1. for(int i = 0; i < 9; i++){
  2. qDebug() << "Dzień" << i << QDate::longDayName(i) << "" << QDate::shortDayName(i);
  3. }

Wynik działania powyższego kodu:

Dzień 0 ""  ""
Dzień 1 "poniedziałek"  "Pn"
Dzień 2 "wtorek"  "Wt"
Dzień 3 "środa"  "îr"
Dzień 4 "czwartek"  "Cz"
Dzień 5 "piątek"  "Pt"
Dzień 6 "sobota"  "So"
Dzień 7 "niedziela"  "N"
Dzień 8 ""  ""

Przykład użycia metod longMonthName i shortMonthName

Listing 3
  1. for(int i = 0; i < 14; i++){
  2. qDebug() << "Miesiąc" << i << QDate::longMonthName(i) << "" << QDate::shortMonthName(i);
  3. }

Wynik działania powyższego kodu:

QTime("17:39:38.947")
Miesiąc 0 ""  ""
Miesiąc 1 "styczeń"  "sty"
Miesiąc 2 "luty"  "lut"
Miesiąc 3 "marzec"  "mar"
Miesiąc 4 "kwiecień"  "kwi"
Miesiąc 5 "maj"  "maj"
Miesiąc 6 "czerwiec"  "cze"
Miesiąc 7 "lipiec"  "lip"
Miesiąc 8 "sierpień"  "sie"
Miesiąc 9 "wrzesień"  "wrz"
Miesiąc 10 "październik"  "paź"
Miesiąc 11 "listopad"  "lis"
Miesiąc 12 "grudzień"  "gru"
Miesiąc 13 ""  ""

Konstruktory klasy QDate

Klasa QDate ma dwa konstruktory: domyślny nie przyjmujący żadnych argumentów i przyjmujący jako argumenty numer roku, miesiąca i dnia. Oto przykład:

Listing 4
  1. QDate date;
  2. qDebug() << date;
  3. QDate date2(2003, 1, 1);
  4. qDebug() << date2;

Wynik działania powyższego kodu:

QTime("18:02:34.960")
QDate("")
QDate("2003-01-01")

Metody zwracające rok, miesiąc lub dzień przechowywanej daty

Trzy metody umożliwiają pozyskanie składowych daty przechowywanej w obiekcie klasy QDate:

  • day - zwraca numer dnia miesiąca (1 - [28, 29, 30 lub 31];
  • month - numer miesiąca (1 -12);
  • year - numer roku

Metoda zwracająca dzień tygodnia oraz metoda zwracająca numer dnia roku

  • dayOfWeak - zwraca numer dnia tygodnia przechowywanej daty oznaczający np. 1 - poniedziałek; 2 -wtorek itd.;
  • dayOfYear - zwraca numer dnia roku przechowywanej daty;

Pozyskiwanie informacji o liczbie dni miesiąca oraz dni roku przechowywanej daty

  • daysInMonth - zwraca liczbę dni miesiąca ustawionej w obiekcie daty;
  • daysInYear - zwraca liczbę dni roku ustawionej w obiekcie daty

Metody dodające dni, miesiące i lata do ustawionej daty

  • addDays - dodaje dni do ustawionej daty i zwraca obiekt QDate zawierający nową datę;
  • addMonths - dodaje miesiące do ustawionej daty i zwraca obiekt QDate zawierający nową datę;
  • addYears - dodaje lata do ustawionej daty i zwraca obiekt QDate zawierający nową datę

Zamiana daty na obiekt klasy QString

Za pomocą metody toString można zamienić obiekt klasy QDate na obiekt klasy QString z wybraną metodą formatowania:

Listing 5
  1. QDate date(2003, 1, 1);
  2. qDebug() << date.toString("dd-MM-yyyy");
  3. qDebug() << date.toString("dd-MMM-yyyy");
  4. qDebug() << date.toString("dd (ddd)-MMM-yyyy");

Wynik działania powyższego kodu:

"01-01-2003"
"01-sty-2003"
"01 (śr)-sty-2003"

Porównywanie obiektów klasy QDate

Obiekty klasy QDate mogą być porównywane za pomocą operatorów porównywania.

Strony powiązane
strony powiązane
  1. doc.qt.io/qt-5/qdate.html - opis klasy QDate na stronie dokumentacji biblioteki Qt

Komentarze