您的位置:首页 > 编程语言 > Java开发

【Java】获取2个日历类型的时间相差多少年、月、天、小时、分钟、秒

2017-09-12 10:48 513 查看
/**
* 获取2个日历类型的时间相差多少年、月、天、小时、分钟、秒
*
* @return "年、月、天、小时、分钟、秒"的数组形式
*/
public static int[] getTimeIntervalArray(Calendar nextCal, Calendar previousCal) {
int year = nextCal.get(Calendar.YEAR) - previousCal.get(Calendar.YEAR);

int month = nextCal.get(Calendar.MONTH) - previousCal.get(Calendar.MONTH);
if (month < 0 && year > 0) {
year--;
month += 12;
}

int day = nextCal.get(Calendar.DAY_OF_MONTH) - previousCal.get(Calendar.DAY_OF_MONTH);
if (day < 0 && month > 0) {
month--;
day += previousCal.getActualMaximum(Calendar.DAY_OF_MONTH); // 加上 previousDate 所在月份的总天数
}

int hour = nextCal.get(Calendar.HOUR_OF_DAY) - previousCal.get(Calendar.HOUR_OF_DAY);
if (hour < 0 && day > 0) {
day--;
hour += 24;
}

int min = nextCal.get(Calendar.MINUTE) - previousCal.get(Calendar.MINUTE);
if (min < 0 && hour > 0) {
hour--;
min += 60;
}

int second = nextCal.get(Calendar.SECOND) - previousCal.get(Calendar.SECOND);
if (second < 0 && min > 0) {
min--;
second += 60;
}

return new int[]{year, month, day, hour, min, second};
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: