gpt4 book ai didi

java - 计算两个 Java 日历之间的差异

转载 作者:行者123 更新时间:2023-12-01 09:26:33 25 4
gpt4 key购买 nike

我试图从两个日历的差异中获取以秒为单位的时间,并知道结果是否超过一天(86400秒)。问题是有时我会得到很大的负值。

private long calcValidityDuration(XMLGregorianCalendar greg, XMLGregorianCalendar gregStart) {


int minEnd = greg.getMinute();
int minStart = gregStart.getMinute();
int hourStart = gregStart.getHour();
int hourEnd = greg.getHour();
int dayEnd = greg.getDay();
int dayStart = gregStart.getDay();
int monthStart = gregStart.getMonth();
int monthEnd = greg.getMonth();
int yearStart = gregStart.getYear();
int yearEnd = greg.getYear();

Calendar cal = new GregorianCalendar();
cal.set(yearEnd, monthEnd - 1, dayEnd, hourEnd, minEnd);
Calendar calStart = new GregorianCalendar();
calStart.set(yearStart, monthStart - 1, dayStart, hourStart, minStart);
long toRet = (((cal.getTimeInMillis()) - (calStart.getTimeInMillis())) / 1000);
if(toRet >= 86400){
return 86400;
}else{
return toRet;
}
}

以下是一些有问题的日期:

开始日期:30/09/16 07结束日期:29/09/16 16

开始日期:2016年9月29日 16结束日期:29/09/16 16

开始日期:2016年9月30日 08结束日期:29/09/16 16

开始日期:2016年9月29日 16结束日期:21/11/2014 19

开始日期:2016年9月29日 16结束日期: 20/03/14 13

最佳答案

public static long getDistanceDay(Calendar one,Calendar two) {

long time1 = one.getTimeMillis();
long time2 = two.getTImeMillis();
long time;

if(time1 > time2) {
time = time-time2;
}
else {
time = time2 - time1;
}
return time/(1000*60*60*24)
}

关于java - 计算两个 Java 日历之间的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39785949/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com