AOJ 0125 - Day count

書くだけ.

#include <iostream>
int MAX_DAY[] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};

class Data{
public:
	Data(int _year, int _month, int _day)
		: year(_year), month(_month), day(_day){}
	void add(){
		if(year%4 == 0){
			if(year%100 != 0 || year%400 == 0)
				MAX_DAY[2] = 29;
		}
		else
			MAX_DAY[2] = 28;
		if(day < MAX_DAY[month])day++;
		else{
			year += month / 12;
			month = month%12 + 1;
			day = 1;
		}
	}

	bool equals(Data d){
		return (d.year == year && d.month == month && d.day == day);
	}
	int year, month, day;
};

int main(){
	int y0, m0, d0, y1, m1, d1;
	while(std::cin >> y0 >> m0 >> d0 >> y1 >> m1 >> d1, y0 != -1){
		Data a = Data(y0, m0, d0), b = Data(y1, m1, d1);
		int count = 0;
		while(!a.equals(b)){
			a.add();
			count++;
		}
		std::cout << count << std::endl;
	}
}