gpt4 book ai didi

date - 如何从给定的日期、星期几和月份获取所有可能的年份?

转载 作者:行者123 更新时间:2023-12-02 10:56:32 25 4
gpt4 key购买 nike

我想要获取与特定日期、星期和月份相关的年份集。我有可能从这种模式中得到不同的年份。假设日期是 15,月份是 8 月,当天的周是星期二,那么我如何找到有效的年份?有这个公式吗?

最佳答案

这能完全解决您的问题吗?

这背后的想法:

  • 从第 0 年的特定日期(8 月 15 日)开始
  • 如果日期是在指定的工作日 --> 将其添加到您的列表
  • 增加 1 年
  • 回到方 block 1

(直到达到您指定的 MAX_DATE)

List<Integer> validYears = new ArrayList<>();
LocalDate date = LocalDate.of(0, Month.AUGUST, 15);
while (date.getYear() < 2015) {
if (date.getDayOfWeek() == DayOfWeek.TUESDAY) {
validYears.add(date.getYear());
}
date = date.plusYears(1);
}
validYears.forEach(year -> System.out.println(year));

编辑:如果您的日期是 2 月 29 日,您应该添加以下代码(因为如果您在 0000-02-29 上添加 1 年,则会得到 0001-02-28,从那时起您将停留在 28 日)

if (date.isLeapYear()) { //And date was feb. 29
date = date.withDayOfMonth(29);
}

这是一个带有流的版本:

int day = 29;
Month month = Month.FEBRUARY;
List<LocalDate> collect = IntStream.range(0, 2016).filter(year -> day <= LocalDate.of(year, month, 1).lengthOfMonth())
.mapToObj(year -> LocalDate.of(year, month, day)).filter(date -> date.getDayOfWeek() == DayOfWeek.TUESDAY)
.collect(Collectors.toList());

collect.forEach((year -> System.out.println(year)));

关于date - 如何从给定的日期、星期几和月份获取所有可能的年份?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31334568/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com