Java中的日期差计算
我想计算两个日期之间的差值。 目前,我正在做:Java中的日期差计算,java,date,calendar,Java,Date,Calendar,我想计算两个日期之间的差值。 目前,我正在做: Calendar firstDate = Calendar.getInstance(); firstDate.set(Calendar.DATE, 15); firstDate.set(Calendar.MONTH, 4); firstDate.get(Calendar.YEAR); int diff = (new Date().getTime - firstDate.getTime)/(1000 * 60 * 60 * 24) 这给了我输出0
Calendar firstDate = Calendar.getInstance();
firstDate.set(Calendar.DATE, 15);
firstDate.set(Calendar.MONTH, 4);
firstDate.get(Calendar.YEAR);
int diff = (new Date().getTime - firstDate.getTime)/(1000 * 60 * 60 * 24)
这给了我输出0。但我希望在新日期()为15时得到输出0。目前新的日期是14日。这使我进一步的计算出错,我不知道如何解决这个问题。请建议
要找出两个日期之间的差异并不像你想象的那么简单
减去两个日期并将结果除以(24*60*60*
1000). 事实上,这是错误的
/*使用日历-正确(&更快)方式**/
//断言:startDate必须在endDate之前
公共静态长日(最终日历开始日期、最终日历结束日期){
整数毫微日=1000*60*60*24;
long-endInstant=endDate.getTimeInMillis();
int presumedDays=(int)((endInstant-startDate.getTimeInMillis())/MILLIS_IN_DAY);
日历光标=(日历)startDate.clone();
cursor.add(Calendar.DAY\u/u年,假定天数);
long instant=cursor.getTimeInMillis();
if(instant==endInstant)
返回假定天数;
最后的整数步=瞬间<结束瞬间?1:-1;
做{
cursor.add(Calendar.DAY\u OF\u MONTH,step);
假定天数+=步长;
}while(cursor.getTimeInMillis()!=endInstant);
返回假定天数;
}
你可以阅读更多关于这方面的内容
要找出两个日期之间的差异并不像你想象的那么简单
减去两个日期并将结果除以(24*60*60*
1000). 事实上,这是错误的
/*使用日历-正确(更快)的方式**/
//断言:startDate必须在endDate之前
公共静态长日(最终日历开始日期、最终日历结束日期){
整数毫微日=1000*60*60*24;
long-endInstant=endDate.getTimeInMillis();
int presumedDays=(int)((endInstant-startDate.getTimeInMillis())/MILLIS_IN_DAY);
日历光标=(日历)startDate.clone();
cursor.add(Calendar.DAY\u/u年,假定天数);
long instant=cursor.getTimeInMillis();
if(instant==endInstant)
返回假定天数;
最后的整数步=瞬间<结束瞬间?1:-1;
做{
cursor.add(Calendar.DAY\u OF\u MONTH,step);
假定天数+=步长;
}while(cursor.getTimeInMillis()!=endInstant);
返回假定天数;
}
您可以阅读更多信息。我不认为创建一个新日期()将为您提供当前时间和日期,而是执行以下操作:
Calendar cal = Calendar.getInstance();
Date currentDate = cal.getTime();
Date firstDate = new Date();
firstDate.setHour(...);
firstDate.setMinute(...);
firstDate.setSeconds(...);
long dif = currentDate.getTime() - firstDate.getTime();
因此,正如您所看到的,您可以简单地从一个数据中减去另一个数据…我不认为创建一个新的日期()将为您提供当前的时间和日期,而是执行以下操作:
Calendar cal = Calendar.getInstance();
Date currentDate = cal.getTime();
Date firstDate = new Date();
firstDate.setHour(...);
firstDate.setMinute(...);
firstDate.setSeconds(...);
long dif = currentDate.getTime() - firstDate.getTime();
正如你所看到的,你可以直接从一个减去另一个…thnx你所附的例子帮助我计算了差值。没问题@Mohit224。几天前遇到了类似的情况。thnx您所附的示例帮助我计算了差异。没问题@Mohit224。几天前遇到了类似的情况。