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: Accepted)

import java.util.*;

public class Main {
	
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		
		while(true){
			int[] a = new int[6];
			for(int i=0;i<6;i++) a[i] = sc.nextInt();
			if(a[0]==-1 && a[1]==-1 && a[2]==-1 && a[3]==-1 && a[4]==-1 && a[5]==-1) break;
			
			int[] sum = new int[2];
			
			for(int c=0;c<2;c++){
				for(int i=1;i<a[3*c];i++){
					if(i%400==0 || (i%4==0 && i%100!=0)) sum[c]+=366;
					else sum[c]+=365;
				}
				for(int i=1;i<a[1+3*c];i++){
					if(i==2){
						if(a[3*c]%400==0 || (a[3*c]%4==0 && a[3*c]%100!=0)) sum[c]+=29;
						else sum[c]+=28;
					}else if(i==4 || i==6 || i==9 || i==11){
						sum[c]+=30;
					}else{
						sum[c]+=31;
					}
				}
				sum[c]+=a[2+3*c];
			}
			System.out.println(sum[1]-sum[0]);
		}
	}	
}