不用工具類,計算兩個日期相隔多少天

package no1;

import java.util.Scanner;

public class Date {

    int y;
    int m;
    int d;
    
    public Date(int y,int m,int d ){
        this.y=y;
        this.m=m;
        this.d=d;
    }
    public int sum(Date d){
        int day=0;
        int[] x={0,31,28,31,30,31,30,31,31,30,31,30,31};
        for(int i=1;i<d.y;i++){
            if(i%4==0&& i%100!=0 || i%400==0){
                day+=366;
            }else{
                day+=365;
            }
    }
    if(d.y%4==0&& d.y%100!=0 || d.y%400==0){
            x[2]=29;
        }
    for(int i=1;i<d.m;i++){
    
        day+=x[i];  
        }
        day+=d.d;
        return day;
    
    }
    public int DiffDays(Date d){//計算兩個日期之間的相距天數的成員方法 
        int s1=sum(this);
        int s2=sum(d);
        if(s1>s2){
            return s1-s2;
        }else{
            return s2-s1;
        }
    }
    public static void main(String args[]){ 
        int a,b,c; 
        Date d1,d2; 
        try{ 
        Scanner sc = new Scanner(System.in); 
        String str1 = sc.next(); 
        a=Integer.parseInt(str1); 
        str1 = sc.next(); 
        b=Integer.parseInt(str1); 
        str1 = sc.next(); 
        c=Integer.parseInt(str1); 
        d1=new Date(a,b,c); 
        String str2 = sc.next(); 
        a=Integer.parseInt(str2); 
        str2 = sc.next(); 
        b=Integer.parseInt(str2); 
        str2 = sc.next(); 
        c=Integer.parseInt(str2); 
        d2=new Date(a,b,c); 
        System.out.println("Daynum:"+d1.DiffDays(d2)); 
        }catch(Exception e){ 
        System.out.println("error"); 
        } 
        } 

}

輸入: 2008 8 8 2018 9 23java

輸出:Daynum:3698this

相關文章
相關標籤/搜索