2011年3月25日金曜日

Aizu Online Judge 0125 Day Count

■0125 Day Count

  1. import java.util.*;  
  2. import java.lang.*;  
  3. import java.math.*;  
  4. import java.io.*;  
  5.   
  6. public class Main{  
  7.   
  8.  Scanner sc=new Scanner(System.in);;  
  9.   
  10.  int INF=1<<28;  
  11.  double EPS=1e-9;  
  12.   
  13.  void run(){  
  14.   for(;;){  
  15.    int y1=sc.nextInt();  
  16.    int m1=sc.nextInt();  
  17.    int d1=sc.nextInt();  
  18.    int y2=sc.nextInt();  
  19.    int m2=sc.nextInt();  
  20.    int d2=sc.nextInt();  
  21.    if(y1<0||m1<0||d1<0||y2<0||m2<0||d2<0){  
  22.     break;  
  23.    }  
  24.    int a=day(y1, m1, d1);  
  25.    int b=day(y2, m2, d2);  
  26.    println((b-a)+"");  
  27.   }  
  28.  }  
  29.   
  30.  int day(int y, int m, int d){  
  31.   int res=0;  
  32.   int[] days={312831303130313130313031};  
  33.   for(int i=0; i<m-1; i++){  
  34.    res+=days[i];  
  35.   }  
  36.   res+=y*365+d-1;  
  37.   if((m==2&&d<=28)||m==1){  
  38.    y--;  
  39.   }  
  40.   if(y>=0){  
  41.    res+=y/4+1;  
  42.    res-=y/100+1;  
  43.    res+=y/400+1;  
  44.   }  
  45.   return res;  
  46.  }  
  47.   
  48.  void debug(Object... os){  
  49.   System.err.println(Arrays.deepToString(os));  
  50.  }  
  51.   
  52.  void print(String s){  
  53.   System.out.print(s);  
  54.  }  
  55.   
  56.  void println(String s){  
  57.   System.out.println(s);  
  58.  }  
  59.   
  60.  public static void main(String[] args){  
  61.   new Main().run();  
  62.  }  
  63. }  

0 件のコメント: