public static int getDaysBetween (String beginDate, String endDate) throws ParseException
{
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
Date bDate = format.parse(beginDate);
Date eDate = format.parse(endDate);
Calendar d1 = new GregorianCalendar();
d1.setTime(bDate);
Calendar d2 = new GregorianCalendar();
d2.setTime(eDate);
int days = d2.get(Calendar.DAY_OF_YEAR) - d1.get(Calendar.DAY_OF_YEAR);
int y2 = d2.get(Calendar.YEAR);
if (d1.get(Calendar.YEAR) != y2)
{
d1 = (Calendar) d1.clone();
do {
days += d1.getActualMaximum(Calendar.DAY_OF_YEAR);//得到当年的实际天数
d1.add(Calendar.YEAR, 1);
} while (d1.get(Calendar.YEAR) != y2);
}
return days;
}
我写给你吧
Calendar calendar= Calendar.getInstance(); //初始化日历对象
calendar.set(Calendar.YEAR, yearOne);//将Calendar的时间设置为yearOne年
calendar.set(Calendar.DATE, monthOne);
calendar.set(Calendar.DATE, dayOne);//monthOne月dayOne日
long timeOne= calendar.getTimeInMillis();//将Calendar表示的时间转换成毫秒
calendar.set(Calendar.YEAR, yearTwo);//将calendar的时间设置为yearTwo年
calendar.set(Calendar.DATE, monthTwo);
calendar.set(Calendar.DATE, dayTwo);//monthTwo月dayTwo日
long timeTwo= calendar.getTimeInMillis();//将Calendar表示的时间转换成毫秒
Date date1= new Date(timeOne);//用timeOne作参数构造date1
Date date2= new Date(timeTwo);//用timeTwo作参数构造date2
if(date2.equals(date1))
{System.out.println("两个日期的年、月、日完全相同");}
else if (date2.after(date1))
{System.out.println("你输入的第二个日期大于第一个日期");}
else if (date2.before(date1))
{System.out.println("你输入的第二个日期小于第一个日期");}
long days= (timeTwo - timeOne) / (long)(24*60*60); //计算两日期相隔天数
最后这里(long)(24*60*60); 记得要cast为long,不然出来的数字很搞笑得