#include <iostream> #include <string> #include <sstream> #include <map> #include "date.h" using namespace std; /* konstruktor */ date::date( string s ) { for ( int i = 0; i < s.size(); ++i ) { if ( '.' == s[i] || '-' == s[i] ) s[i] = ' '; } int y, m, d; stringstream parser( s ); parser >> y >> m >> d; set( y, m, d ); } /* módosítók */ void date::next() { map<int, int> days_in_months; days_in_months[1] = 31; days_in_months[2] = 28; days_in_months[3] = 31; // ... ++day; /* TODO: szökőév */ if ( day-1 == days_in_months[month] ) { day = 1; ++month; } if ( 13 == month ) { month = 1; ++year; } } void date::add( int n ) { for (int i = 0; i < n; ++i ) next(); } /* input-output */ void date::read() { // nem lenne igazán jó: // std::cin >> year >> month >> day; int y, m, d; if ( std::cin >> y >> m >> d ) { set( y, m, d ); } } void date::print() const { // nem lenne igazán jó: std::cout << year << month << day; std::cout << "[ " << get_year() << "," << get_month() << "," << get_day() << " ]"; }