import java.util.*;
import java.lang.Math; class Date1{
private int year;
private int month;
private int day;
Date1(){
year=1900;
month=1;
day=1;
}
Date1(int y,int m,int d){
this.year=y;
this.month=m;
this.day=d;
}
public int getYear(){
return year;
}
public int getMonth(){
return month;
}
public int getDay(){
return day;
}
public boolean equals(Date1 d2){ //判断两个日期是否相等
if(this.year==d2.year&&this.month==d2.month&&this.day==d2.day)
return true;
else
return false;
}
public long getTime(){ //计算从调用该方法的对象所表示的日期到历元的时间,单位是毫秒
Calendar c=Calendar.getInstance(); //Calendar类的对象的创建方式
c.set(getYear(), getMonth(),getDay()); //设置日历字段 YEAR、MONTH 和 DAY_OF_MONTH 的值
return c.getTimeInMillis(); //计算时间,返回值是long型
} //上面的方法用Date类的getTime方法也可以做,但是没有把输入的时间接收的方法.故用Calendar类
public int compareTo(Date1 c2){ //计算天数差
long t1=this.getTime();
long t2=c2.getTime();
return (int)(Math.abs(t1-t2)/3600/24/1000); //所得到的时间差的绝对值除以1000换算为秒,除以3600换算为小时,除以24换算为天
}
}
public class Test3 {
public static void main(String args[]){
int y1=0,m1=0,d1=0,y2=0,m2=0,d2=0;
Scanner input=new Scanner(System.in);
System.out.println("请输入2个日期(eg:2013 04 17),年月日以空格分隔");
y1=input.nextInt();
m1=input.nextInt();
d1=input.nextInt();
y2=input.nextInt();
m2=input.nextInt();
d2=input.nextInt(); //两个日期分别的年月日
Date1 date1=new Date1(y1,m1,d1); //题目要求输入年月日作为构造时的参数
Date1 date2=new Date1(y2,m2,d2);
if(date1.equals(date2)){ //判断是否相等
System.out.println("两个日期相等");
}
else
System.out.println("两个日期不相等");
System.out.println("相差天数:"+date1.compareTo(date2)); //判断相差天数
}
}