package rp;
import java.util.Calendar;
import java.util.Scanner;
/*编写一个Java应用程序,当用户在输入对话框中输入两个日期后
-
(日期格式为YYYYMMDD,如1999年1月12日应输入为19990112)
-
程序将判断两个日期的先后顺序,以及两个日期之间的间隔天数
-
(例如1999年1月1日和1999年1月2日之间的间隔是1天*/
public class 日期处理 {private Calendar a,b;
public 日期处理() {}
public 日期处理(Calendar a,Calendar b) {
this.a = a;
this.b=b;
}//输入一个日期,将其形成Calendar对象
public Calendar calendar_date(){Scanner cin=new Scanner (System.in); System.out.println("请输入一个日期:"); String s=cin.next(); cin.close(); Calendar calendar=Calendar.getInstance();//返回一个 Calendar 对象,其日历字段已由当前日期和时间初始化 Integer year=Integer.valueOf(s.substring(0, 4)); Integer month=Integer.valueOf(s.substring(4, 6)); Integer day=Integer.valueOf(s.substring(6, 8)); calendar.set(Calendar.YEAR,year); calendar.set(Calendar.MONTH, month); calendar.set(Calendar.DAY_OF_MONTH, day); return calendar;
}
// //求Calendar的毫秒
// public long getTimes(Calendar a) {
// long times=a.getTimeInMillis();
// return times;
// }
// //毫秒间隔天数
// public void cha(long times,long times2) {
// long days=Math.abs(times-times2)/(2460601000);
// System.out.println(“相差天数为”+days+“天”);
// }
//改进:二合一
public void days(Calendar a,Calendar b) {
long times=a.getTimeInMillis();
long times2=a.getTimeInMillis();
long days=Math.abs(times-times2)/(2460601000);
System.out.println(“相差天数为”+days+“天”);
}
//判断日期顺序
public void pd() {
if(a.compareTo(b)<0)
System.out.println(a+"在"+b+"之前");
else if(a.compareTo(b)>0)
System.out.println(a+"在"+b+"之后");
else
System.out.println("同一日期");
}
// if(date.equals(date2)) {
// System.out.println(“同一日期”);
//}else if(date.after(date2))
// System.out.println(date+“在”+date2+“之后”);
//else if(date.before(date2))
// System.out.println(date+“在”+date2+“之前”);
public static void main(String[] args){
日期处理 deal= new 日期处理();
Calendar a=deal.calendar_date();
Calendar b=deal.calendar_date();
日期处理 deal2= new 日期处理(a,b);
deal2.pd();
deal2.days(a, b);
}
}