不用工具类,计算两个日期相隔多少天


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 23

输出:Daynum:3698

posted @ 2018-10-09 19:29  菜鸡变小鸟  阅读(430)  评论(0编辑  收藏  举报