如何检查日期是否大于新年日期?

时间:2019-10-31 15:04:49

标签: java

假设今天是2019年10月31日,那么我希望将代码另存为001,如果在同一年内将代码增加1,即为2019-11-01生成的代码是002。 现在,如果它是2020年1月1日或之后,我希望代码再次生成为001。

1 个答案:

答案 0 :(得分:0)

我做了以下假设:

  1. 今年的某个日期-从今天开始,以天为单位计算天数的差额,
  2. 用于明年(或之后)的日期-每年的返回日期,以1到366开头

这是我想出的方法

private static DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
public static int code(String dateStr) {
    LocalDate date = LocalDate.parse(dateStr, formatter);
    LocalDate today = LocalDate.now();
    return today.getYear() == date.getYear() ? date.getDayOfYear() - today.getDayOfYear() + 1 : date.getDayOfYear() ;
}

测试方法

public static void main(String[] args) {
    System.out.println("2019-10-31 -> " + code("2019-10-31"));
    System.out.println("2019-11-01 -> " + code("2019-11-01"));
    System.out.println("2019-12-31 -> " + code("2019-12-31"));
    System.out.println("2020-01-01 -> " + code("2020-01-01"));
    System.out.println("2020-12-31 -> " + code("2020-12-31"));
    System.out.println("2021-01-01 -> " + code("2021-01-01"));
}

输出

2019-10-31 -> 1
2019-11-01 -> 2
2019-12-31 -> 62
2020-01-01 -> 1
2020-12-31 -> 366
2021-01-01 -> 1