Data (date)

MetodaDeklaracja metodyPrzykład wywołaniaOpis działania
Deklaracja datydate()date daDeklarowana jest zmienna typu data
Tworzenie daty na podstawie napisudate(const char *str)
date(const Text t)
date da("2014-12-06")Tworzona jest zmienna data na podstawie napisu
Tworzenie daty na podstawie składowych rok, miesiąc i dzieńdate(long y,long m,long d)date da(2014,12,6)Tworzona jest zmienna data na podstawie składowych rok, miesiąc i dzień
Zamiana napisu w datędate d(const char *str)date da = d("2014-12-06")Zwraca datę utworzoną na podstawie napisu
Dzisiajdate today()date da = today()Zwraca bieżącą datę
Pierwszy dzień miesiącadate ymfirst(const date &t)ymfirst(d("2014-12-06"))Zwraca pierwszy dzień miesiąca, w którym występuje data ‘t’.
W tym przypadku 2014-12-1
Ostatni dzień miesiącadate ymlast(const date &t)ymlast(d("2014-12-06"))Zwraca ostatni dzień miesiąca, w którym występuje data ‘t’.
W tym przypadku 2014-12-31
Konwersja daty na liczbęoperator double()double(d("2014-12-06"))Konwertuje datę na liczbę rzeczywistą. Zachowywany jest rok (jako części całkowite) i miesiąc (na miejscach dziesiętnych). Dzień miesiąca jest ignorowany.
W tym przykładzie zwracana jest liczba 2014.12.
Konwersja liczby na datędate dtoda(double d)date da=dtoda(2014.12)Liczba rzeczywista jest zamieniana na datę. Liczba rzeczywista musi zawierać rok (jako części całkowite) i miesiąc (na miejscach dziesiętnych).
W przykładzie liczba 2014.12 jest zamieniana na datę 2014-12-1
Konwersja daty na tekstText datot(const date &da)datot(d("2014-12-06"))Konwertuje datę na tekst.
W tym przykładzie zwracany jest tekst "2014-12-06".
Dzieńlong day(const date &da)day(d("2014-12-06"))Zwraca dzień dla podanej daty.
W tym przypadku 6
Miesiąclong month(const date &da)month(d("2014-12-06"))Zwraca miesiąc dla podanej daty.
W tym przypadku 12
Roklong year(const date &da)year(d("2014-12-06"))Zwraca rok dla podanej daty.
W tym przypadku 2014
Składowe rok, miesiąc, dzieńvoid ymd(long &y,long &m,long &d)da.ymd(y,m,d)Rozkłada datę na składowe rok (y), miesiąc (m) i dzień (d).
Zwiększenie o liczbę dnidate operator +(const date &da,const long l)d("2014-12-06")+40Zwiększa datę o ‘l’ dni.
W tym przypadku wynikiem jest 2015-01-15
Zmniejszenie o liczbę dnidate operator -(const date &da,const long l)d("2014-12-06")-40Zmniejsza datę o ‘l’ dni.
W tym przypadku wynikiem jest 2014-10-27
Modyfikacja o liczbę dnidate dmod(const date &da,const long l)dmod(d("2014-12-06"),-40)Modyfikuje datę o ‘l’ dni. ‘l’ dodatnie powoduje zwiększenie, a ‘l’ ujemne zmniejszenie daty.
W tym przypadku wynikiem jest 2014-10-27
Modyfikacja o liczbę miesięcydate mmod(const date &da,const long l)mmod(d("2014-12-06"),2)Modyfikuje datę o ‘l’ miesięcy. ‘l’ dodatnie powoduje zwiększenie, a ‘l’ ujemne zmniejszenie daty. Jeśli data ‘da’ jest z końca miesiąca (np. 31), to po przesunięciu dzień jest zmiejszany (np. na 30), po to, by data wynikowa była poprawną datą.
W tym przypadku wynikiem jest 2015-2-6
Modyfikacja o liczbę latdate ymod(const date &da,const long l)ymod(d("2014-12-06"),-2)Modyfikuje datę o ‘l’ lat. ‘l’ dodatnie powoduje zwiększenie, a ‘l’ ujemne zmniejszenie daty.
W tym przypadku wynikiem jest 2012-12-6
Różnicalong operator -(const date &da1,const date &da2)d("2014-12-26")-d("2012-12-06")Obliczana jest różnica między datami (wyrażona w dniach).
W tym przypadku różnica wynosi 750 dni.
Porównywanieint operator ==(const date &da1,const date &da2)
int operator <(const date &da1,const date &da2)
itd.
d("2014-12-26") == d("2012-12-06")
d("2014-12-26") < d("2012-12-06")
Daty są porównywane z dokładnością do dnia. Dostępne są wszystkie operatory (==,!=,<,>,<=,>=).
Wyświetlenieostream & operator <<(ostream &out,const date &da)cout<Wyświetlenie daty
Pobranieistream & operator >>(istream &in,date &da)cin>>daPobranie daty wpisywanej z klawiatury. Oczekiwany jest format yyyy-mm-dd. Separatorem może też być kropka lub /.