在Java中检查日期是否介于两个日期之间
我想知道的一件事是如何计算从今天起10天的日期
第二件事是检查一个日期是否在另外两个日期之间。 例如,假设我有一个应用程序,它显示了我在未来10天内需要做的事情(planner)。现在,我如何查看我分配给某个事件的日期是否介于今天和距离今天10天的日期之间
你可以在下面搜索框中键入要查询的问题!
我想知道的一件事是如何计算从今天起10天的日期
第二件事是检查一个日期是否在另外两个日期之间。 例如,假设我有一个应用程序,它显示了我在未来10天内需要做的事情(planner)。现在,我如何查看我分配给某个事件的日期是否介于今天和距离今天10天的日期之间
# 1 楼答案
你可以使用前,后和比较日期类的方法
这里有一些例子
http://www.roseindia.net/java/example/java/util/CompareDate.shtml
http://www.javafaq.nu/java-example-code-287.html
http://www.esus.com/javaindex/j2se/jdk1.2/javautil/dates/comparingdates.html
下面是关于日期课程的API
http://java.sun.com/j2se/1.4.2/docs/api/java/util/Date.html
祝你好运
# 2 楼答案
编辑:另一个建议的变体:
# 3 楼答案
使用
java.util.Date
和java.util.Calendar
操纵和比较日期是一件非常痛苦的事情,这就是JodaTime存在的原因。到目前为止,没有一个答案涵盖了所讨论的时间。当日期的时间不为零时,比较可能会失败。还不清楚您想要的是包容性还是排他性比较。到目前为止发布的大多数答案都建议进行独家比较(即5月24日是而不是在5月20日和5月24日之间),而在实际情况下,将其包括(即5月24日是在5月20日和5月24日之间)使用标准的JavaSE6API,您需要^{} 来实现这一点
有了JodaTime,您可以这样做:
现在是
Calendar
的可怕部分。让我们先准备:为了使用
Calendar#before()
和Calendar#after()
进行可靠的比较,我们需要先去掉时间。想象一下,现在是2010年5月24日上午9点,活动日期被设定为2010年5月24日,没有时间。当你想要包容性比较时,你希望在同一天进行return true
。即(event.equals(now) || event.after(now))
或-更短但相等的(!event.before(now))
都应返回true。但实际上,由于now
中存在时间,没有人会这样做。首先需要清除所有日历实例中的时间,如下所示:或者,您也可以仅在日/月/年进行比较
非常冗长
使用JodaTime,只需使用^{} 即可获得日期部分:
是的,以上是你真正需要做的
# 4 楼答案
使用JodaTime日历替换类:http://joda-time.sourceforge.net/
# 5 楼答案
要检查日期是否介于两个日期之间,下面是一个简单的程序:
# 6 楼答案
加上十天:
要检查两个日期之间是否存在差异: