假设今天是2019年10月31日,那么我希望将代码另存为001,如果在同一年内将代码增加1,即为2019-11-01生成的代码是002。 现在,如果它是2020年1月1日或之后,我希望代码再次生成为001。
答案 0 :(得分:0)
我做了以下假设:
这是我想出的方法
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