Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java中的日期差计算_Java_Date_Calendar - Fatal编程技术网

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。几天前遇到了类似的情况。