Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/386.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-如何检查两个日期值是否相隔X天_Java_Date - Fatal编程技术网

Java-如何检查两个日期值是否相隔X天

Java-如何检查两个日期值是否相隔X天,java,date,Java,Date,我试图删除数据库中日期(java.util.Date)比当前日期早10天的条目。有没有办法只比较日期内的“day”值。不仅要比较哪个日期值更大,还要确保两个日期值之间有X天。只需为当前日期+10天创建一个新的日期对象,并与之进行比较 i、 e 正如评论所说,尽管日期对象现在已经非常过时,但您应该使用一种更为流行的时间方法。假设您有两个日期值,分别为time1和time2 int daysApart = (int)((time2.getTime() - time1.getTime()) / (10

我试图删除数据库中日期(java.util.Date)比当前日期早10天的条目。有没有办法只比较日期内的“day”值。不仅要比较哪个日期值更大,还要确保两个日期值之间有X天。

只需为当前日期+10天创建一个新的日期对象,并与之进行比较

i、 e


正如评论所说,尽管日期对象现在已经非常过时,但您应该使用一种更为流行的时间方法。

假设您有两个日期值,分别为
time1
time2

int daysApart = (int)((time2.getTime() - time1.getTime()) / (1000*60*60*24l));
if (abs(daysApart) >= 10) 
    System.out.println("10+ days apart.");
else
    System.out.println("Less than 10 days apart.");

您使用的是哪种数据库?日期是旧新闻。我会使用Calendar API,或者java 8中新的datetime API不使用Joda时间库,那么java 8中的java.time呢?那也出去了吗?请参阅或或链接到的问题@AlexandruCimpanu。搜索“Joda”和“plusDays”或“minusDays”将提供许多答案。我假设,如果时间1是晚上9点,时间2是10天之后的上午9点,它仍然希望匹配,这就是为什么存在
=
,而不仅仅是
的原因?你的整数除法是9天,而不是10天。由于time2在time1之后不到整整10天。(time2.getTime()/(1000*60*60*24l)-time1.getTime()/(1000*60*60*24l))这完全有效。我们提出的问题不是不到10天,而是相隔10天@Cruncher
int daysApart = (int)((time2.getTime() - time1.getTime()) / (1000*60*60*24l));
if (abs(daysApart) >= 10) 
    System.out.println("10+ days apart.");
else
    System.out.println("Less than 10 days apart.");