public int[] calMonthAndDay() {
int day = 0, month = 0;//相隔的月数,天数
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
try {
Date sday = sdf.parse("2015-11-26 09:16:21");//指定的日期(可自行替换)
Date eday = new Date();
//long diff = eday.getTime() - sday.getTime();//这样得到的差值是微秒级别
//days = (int) (diff / (1000 * 60 * 60 * 24));
Calendar cd1 = Calendar.getInstance();
cd1.setTime(sday);
int day1 = cd1.get(Calendar.DAY_OF_MONTH);
int month1 = cd1.get(Calendar.MONTH);
int year1 = cd1.get(Calendar.YEAR);
Calendar cd2 = Calendar.getInstance();
cd2.setTime(eday);
int day2 = cd2.get(Calendar.DAY_OF_MONTH);
int month2 = cd2.get(Calendar.MONTH);
int year2 = cd2.get(Calendar.YEAR);
if (day2 - day1 < 0) {
Calendar lcd = Calendar.getInstance();
lcd.set(Calendar.YEAR, year1);
lcd.set(Calendar.MONTH, month1);
lcd.set(Calendar.DATE, 1);
lcd.roll(Calendar.DATE, -1);
int countDay = lcd.get(Calendar.DATE);
System.out.println("count day = " + countDay);
day = countDay - day1 + day2;
month2 = month2 - 1;
} else {
day = day2 - day1;
}
month = (year2 - year1) * 12 + month2 - month1;
} catch (ParseException e) {
e.printStackTrace();
}
return new int[]{month, day};
}
求出当前日期距离上一个指定日期的月数天数
于 2016-07-22 13:06:40 首次发布