如何找到最近的日期与当前日期?

时间:2018-05-22 18:51:29

标签: java selenium

我以特定格式创建了日期列表。在该列表中,我添加了一些HTML代码中的元素。另外,我的格式与列表中的格式相同。

List<WebElement> times = driver.findElements(By.tagName("time"));
String timeStamp = new SimpleDateFormat("MMM d, yyyy", Locale.ENGLISH).format(Calendar.getInstance().getTime());

System.out.println(timeStamp);
for (WebElement element: times) {
        System.out.println(element.getText());
    }

现在,如何获取最近通过的日期并与当前日期进行比较,因为我必须计算过去的日期是多少?

2 个答案:

答案 0 :(得分:3)

您可以执行以下操作:

  • 迭代你的元素
  • parse他们到LocalDate(设置formatter中的好模式)
  • 只保留过去的
  • 获取max
  • 打印
List<WebElement> times = driver.findElements(By.tagName("time"));

LocalDate now = LocalDate.now();

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("MMMM d, yyyy", Locale.ENGLISH);

LocalDate mostRecent = times.stream()
            .map(webE -> LocalDate.parse(webE.getText(), formatter))
            .filter(date -> date.isBefore(now))
            .max(Comparator.comparingLong(LocalDate::toEpochDay))
            .orElseThrow(IllegalAccessException::new);

System.out.println(mostRecent);
LocalDate dateBefore;
LocalDate dateAfter;
long daysBetween = DAYS.between(dateBefore, dateAfter);

答案 1 :(得分:1)

尝试使用TreeSet.floor()/ TreeSet.ceiling()。

https://www.tutorialspoint.com/java/util/treeset_floor.htm