Problem:
日数

2 つの日付を入力とし、その 2 つの日付けの間の日数を出力するプログラムを作成してください。

日付 1 (y1, m1, d1) は日付 2 (y2, m2, d2) と同じか、あるいはそれ以前の日付とします。日付 1 は日数に含め、日付 2 は含めません。また、うるう年を考慮にいれて計算してください。うるう年の条件は次のとおりとします。

西暦年が 4 で割り切れる年であること。

ただし、100 で割り切れる年はうるう年としない。

しかし、400 で割り切れる年はうるう年である。

Input

複数のデータセットが与えられます。各データセットの形式は以下のとおりです：

y1 m1 d1 y2 m2 d2

y1, m1, d1, y2, m2, d2 のいずれかが負の数のとき入力の終わりとします。

データセットの数は 50 を超えません。

Output

データセットごとに、日数を１行に出力してください。

Sample Input

2006 9 2 2006 9 3
2006 9 2 2006 11 11
2004 1 1 2005 1 1
2000 1 1 2006 1 1
2000 1 1 2101 1 1
-1 -1 -1 -1 -1 -1

Output for the Sample Input

1
70
366
2192
36890

Solution in JAVA (judge verdict: Wrong Answer)

import java.util.*;

import java.lang.*;

import java.math.*;



public class Main {

	Scanner sc = new Scanner(System.in);

	int[] mon = {

		0,31,28,31,30,31,30,31,31,30,31,30,31	

	};

	class date{

		int y;

		int m;

		int d;

		date(int q,int w,int e){

			y = q;

			m = w;

			d = e;

		}

		long serialValue(){

			long ret = 0;

			int y = this.y-1;

			ret += y*365;

			ret += y/4;

			ret -= y/100;

			ret += y/400;

			for(int i = 0; i < m;i++){

				ret += mon[i];

			}

			y += 1;

			if(y%400 == 0 ||(y%100!=0&&y%4!=0) ){

				if(m > 2){

					ret += 1;

				}

			}

			ret += d;

			return ret;

		}

	}

	void run(){

		for(;;){

			int [] in = new int[6];

			int flag = 0;

			for(int i= 0; i < 6;i++){

				in[i] = sc.nextInt();

				flag |= in[i];

			}

			if(flag < 0){

				break;

			}

			date a = new date(in[0],in[1],in[2]);

			date b = new date(in[3],in[4],in[5]);

			System.out.println(b.serialValue() - a.serialValue());

		}

	}

	public static void main(String[] args){

		Main m = new Main();

		m.run();

	}

}