• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Zadanie z klasą w c++

Object Storage Arubacloud
+1 głos
314 wizyt
pytanie zadane 24 listopada 2022 w C i C++ przez benny13 Obywatel (1,150 p.)

Cześć, mam następujący problem - piszę klasę która zawiera trzy pola - dzień, miesiąc, rok. Potrzebuję stworzyć metody, które przesuną datę o dzień lub miesiąc. Niestety tutaj nie wiem, jak to odpowiednio rozpisać, aby działało, tzn. przykładowo program wiedział, który miesiąc ma ile dni, np. sytuacja gdy do 31 grudnia dodamy jeden dzień, data zmieni się na 1 stycznia następnego roku. Z góry dziękuję :)

Dotychczasowy kod:

class Data {
	
	int dzien;
	int miesiac;
	int rok;
	
	public:
	Data(int x, int y, int z) {
		if( (x>0 && x<32) && (y>0 && y<13) && (z>0) ) {
			dzien = x;
			miesiac = y;
			rok = z;
	}

 

1 odpowiedź

+3 głosów
odpowiedź 24 listopada 2022 przez Gynvael Coldwind Nałogowiec (27,530 p.)

Najlepiej zrób sobie osobną prywatną metodę której podajesz miesiąc i rok, a ona Ci zwraca ile dni ten miesiąc ma (tj. wydziel osobna metodę na to). W tej metodzie:

  • zrób sobie tablicę liczby dni w każdym miesiącu,
  • i od razu obsłuż jakimś if'em lata przestępne.

Wtedy możesz tą metodę użyć zarówno w konstruktorze, jak i w innych metodach w których potrzebujesz. Więc w funkcji dodającej dzień możesz po prostu sprawdzić czy wynik dodawania do dnia jest większy od tego co zwróci ta metoda. Jeśli jest, to po prostu zwiększasz miesiąc / resetujesz dzień na 1. I potem sprawdzasz czy miesiąc się czasem nie zmienił na 13sty ;).

komentarz 25 listopada 2022 przez benny13 Obywatel (1,150 p.)
Dziękuję!
2
komentarz 25 listopada 2022 przez TOWaD Mądrala (5,700 p.)

struct tm; może być do sprawdzenia poprawności działania twojego programu. I teraz.

Podobne pytania

–2 głosów
1 odpowiedź 283 wizyt
pytanie zadane 24 października 2022 w C i C++ przez benny13 Obywatel (1,150 p.)
0 głosów
1 odpowiedź 289 wizyt
pytanie zadane 18 stycznia 2022 w C i C++ przez Fluxik Nowicjusz (240 p.)
0 głosów
0 odpowiedzi 221 wizyt
pytanie zadane 8 maja 2022 w C i C++ przez Bollo Początkujący (460 p.)

92,555 zapytań

141,403 odpowiedzi

319,560 komentarzy

61,940 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...