【问题标题】:How to retrieve last 90 days friday dates?如何检索过去 90 天的星期五日期?
【发布时间】:2016-12-03 18:07:45
【问题描述】:

我想在下拉列表中显示过去 90 天的所有周结束日期。如何检索过去 90 天的星期五日期?

【问题讨论】:

标签: java date


【解决方案1】:

只是给您一个想法(因为您标记了 JAVA),在 JAVA 中,这可以使用 Date API 来完成。对于测试,我只检查了 5 周,你可以一直到 90 周。请注意,这提供了一个想法,是否可以优化,可能是的

public static void main(String[] args) {
    try {
        LocalDateTime localDateTime = LocalDate.now().atStartOfDay();
        DayOfWeek dotw = localDateTime.getDayOfWeek();
        String dayOfTheWeek = dotw.name();

        for (int daysOfTheWeek = 1; daysOfTheWeek < 7; daysOfTheWeek++) {
            if (dayOfTheWeek.equals(DayOfWeek.FRIDAY.name())) {
                break;
            } else {
                localDateTime = LocalDate.now().atStartOfDay().minusDays(daysOfTheWeek);
                dotw = localDateTime.getDayOfWeek();
                dayOfTheWeek = dotw.name();
            }
        }
        ArrayList<LocalDate> localDates = new ArrayList<LocalDate>();

        for (int weekCount = 0; weekCount < 5; weekCount++) {
            localDates.add(localDateTime.minusWeeks(weekCount).toLocalDate());
        }
        System.out.println(localDates);

    } catch (final Throwable t) {
        t.printStackTrace();
    }
}

【讨论】:

  • 仅供参考,您可以通过多种方式改进您的代码:不需要 LocalDateTime(一个 LocalDate 就足够了);使用时间调整器(例如:previousOrSame 无需循环即可获得前一个 FRIDAY)。例如:ideone.com/MRWBxj
  • 感谢@assylias,通过那个 sn-p 学到了一两件事。谢谢阿金
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-05-18
  • 2022-07-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多