我有三个日期:从日期,到目前为止和当前日期。
我想查找当前日期是否在From和To日期之间。如果当前日期介于这两个日期之间,那么我想创建两个新的From和To日期。
示例:
预期结果应为:
为了实现这个逻辑,我想检查我当前的日期状态,无论是在日期范围的中间,还是在之前或之后。
答案 0 :(得分:1)
您在评论中说,您的输入是"日期格式" ,但这是一个非常模糊的描述,因为从技术上讲,Date
objects don't have a format
如果您的输入是java.util.Date
的实例,则只需使用methods before
, after
and equals
来比较日期。
如果你正在使用Java 8,java.time
API是一个更好的选择。如果你不关心这一年,你可以使用java.time.LocalDate
甚至java.time.MonthDay
。
这两个类都有比较方法:isAfter
,isBefore
和equals
,以及now()
方法来获取当前日期。
有了这些,您就拥有了实现逻辑的所有工具。
答案 1 :(得分:0)
尝试这样的事情:
ArrayList<Date> dates = new ArrayList<>();
DateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
String dateString1 = "2017-02-15";
String dateString2 = "2015-03-12";
String dateString3 = "2016-07-19";
Date date1 = null,date2=null,date3=null;
try {
date1 = sdf.parse(dateString1);
date2 = sdf.parse(dateString2);
date3 = sdf.parse(dateString3);
} catch (ParseException e) {
e.printStackTrace();
}
dates.add(date1);
dates.add(date2);
dates.add(date3);
Collections.sort(dates, new Comparator<Date>() {
public int compare(Date d1, Date d2) {
return d1.compareTo(d2);
}
});