Zliczanie miesięcy i dni
Ostatnio zmodyfikowano 2015-11-30 11:02
Opsowns Temat założony przez niniejszego użytkownika |
Zliczanie miesięcy i dni » 2015-11-29 21:15:31 Witam mam zrobić tak że jak dodam do aktualnego miesiąca i dnia liczby to przeskoczy na następny itd problem jest w tym że działa tylko w połowie bo jak sobie wezmę np +70 to program już nie wypisze dni czy też miesięcy. int Date::ilosc; Date Date::_default( 1, 1, 1992 ); Date::Date( int a, int b, int c ) { ilosc++; if( a > 0 && a <= 31 ) day = a; else day = 1; if( b > 0 && b <= 12 ) month = b; else month = 1; if( c > 0 ) year = c; else year = 1900; }
Date::~Date( void ) { ilosc--; }
Date::Date( const Date & d ) { ilosc++; day = d.day; month = d.month; year = d.year; }
void Date::display( char * nazwa ) { string month1; switch( month ) { case 1: month1 = "styczen"; break; case 2: month1 = "luty"; break; case 3: month1 = "marzec"; break; case 4: month1 = "kwiecien"; break; case 5: month1 = "Maj"; break; case 6: month1 = "Czerwiec"; break; case 7: month1 = "Lipiec"; break; case 8: month1 = "Sierpien"; break; case 9: month1 = "Wrzesien"; break; case 10: month1 = "Pazdziernik"; break; case 11: month1 = "Listopad"; break; case 12: month1 = "Grudzien"; break; } cout << nazwa << ": " << day << "." << month1.c_str() << "." << year << endl << endl; } Date & Date::addDay( int ile ) { for( day; day <= 31; day++ ) this->day = this->day + ile; if( this->day >= 31 ) { this->day -= 32; } return * this; } Date & Date::addYear( int ile ) { this->year = year + ile; return * this; }
Date & Date::addMonth( int ile ) { this->month = month + ile; if( this->month >= 12 && this->day >= 1 ) { this->month -= 12; } return * this; } Date & Date::addDate( const Date & d ) { this->day += d.day; this->year += d.year; this->month += d.month; return * this; } |
|
darko202 |
» 2015-11-30 11:02:37 1. niestety pokazałeś fragment kodu, do którego trudno się odnieść 2. na podstawie zaprezentowanego konstruktora i metody addDay Date::Date( const Date & d ) { ilosc++; day = d.day; month = d.month; year = d.year; } ..... Date & Date::addDay( int ile ) { for( day; day <= 31; day++ ) this->day = this->day + ile; if( this->day >= 31 ) { this->day -= 32; } return * this; }
na przykładzie widać gdzie jest źle 3. zapoznaj się z techniką debugowania kodu poszukaj np. https://www.google.pl/?gws_rd=ssl#q=debugging%20c%2B%2B |
|
« 1 » |