| Metoda | Deklaracja metody | Przykład wywołania | Opis działania |
|---|---|---|---|
| Deklaracja daty | date() | date da | Deklarowana jest zmienna typu data |
| Tworzenie daty na podstawie napisu | date(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 |
| Dzisiaj | date today() | date da = today() | Zwraca bieżącą datę |
| Pierwszy dzień miesiąca | date 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ąca | date 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 tekst | Text 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ąc | long month(const date &da) | month(d("2014-12-06")) | Zwraca miesiąc dla podanej daty. W tym przypadku 12 |
| Rok | long 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ę dni | date operator +(const date &da,const long l) | d("2014-12-06")+40 | Zwiększa datę o ‘l’ dni. W tym przypadku wynikiem jest 2015-01-15 |
| Zmniejszenie o liczbę dni | date operator -(const date &da,const long l) | d("2014-12-06")-40 | Zmniejsza datę o ‘l’ dni. W tym przypadku wynikiem jest 2014-10-27 |
| Modyfikacja o liczbę dni | date 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ęcy | date 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ę lat | date 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óżnica | long 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ównywanie | int 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świetlenie | ostream & operator <<(ostream &out,const date &da) | cout<| Wyświetlenie daty |
|
| Pobranie | istream & operator >>(istream &in,date &da) | cin>>da | Pobranie daty wpisywanej z klawiatury. Oczekiwany jest format yyyy-mm-dd. Separatorem może też być kropka lub /. |
