-2

我得到三个日期:From dateTo datecurrent date

我想查找当前日期是否介于 From 和 To 日期之间。如果当前日期在这两个日期之间,那么我想创建两个新的 From 和 To 日期。

例子:

  • 从日期 = 3 月 15 日
  • 迄今为止 = 3 月 25 日
  • 当前日期 = 3 月 21 日

预期结果应该是:

  1. 从日期 = 3 月 15 日,到日期 = 3 月 21 日
  2. 从日期 = 3 月 21 日,到日期 = 3 月 25 日

为了实现这个逻辑,我想检查我当前的日期状态是在日期范围的中间还是之前或之后。

4

2 回答 2

1

您在评论中说您的输入是“日期格式”,但这是一个非常模糊的描述,因为从技术上讲,Date对象没有格式

如果您的输入是 的实例java.util.Date,则只需使用方法beforeafterequals比较日期。

如果您使用的是 Java 8,那么java.timeAPI是一个更好的选择。如果您不关心年份,您可以使用 ajava.time.LocalDate甚至 a 。java.time.MonthDay

这两个类都有比较方法:isAfterisBeforeequals,以及now()获取当前日期的方法。有了这些,您就拥有了实现逻辑的所有工具。

于 2018-03-21T12:41:09.980 回答
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);
        }
    });
于 2018-03-21T10:09:42.950 回答