当前位置: 首页 > 知识库问答 >
问题:

在java中给定LocalDate后,如何获得下周五13号?

邵绪
2023-03-14

我有一个任务的问题。我必须得到下周五13日,因为给定的日期使用LocalDate。

你们有什么想法吗?

共有3个答案

孙凌
2023-03-14

您可以使用IntStream迭代几天:

public static LocalDate findFridayThirteen(LocalDate fromDate) {
    return IntStream.iterate(0, i -> i + 1)
            .mapToObj(fromDate::plusDays)
            .filter(date -> date.getDayOfWeek() == DayOfWeek.FRIDAY 
                    && date.getDayOfMonth() == 13)
            .findFirst()
            .orElseThrow();
}

测试:

LocalDate date = LocalDate.of(2022, 1, 1);

LocalDate friday13 = findFridayThirteen(date);

DateTimeFormatter formatter = DateTimeFormatter.ofLocalizedDate(FormatStyle.FULL);

System.out.println(friday13.format(formatter));

输出:

Friday, May 13, 2022
堵凯
2023-03-14
    public static void main(String[] args) {
    boolean is13Friday = false;
    LocalDate nextFriday = LocalDate.now();
    while (!is13Friday) {
        nextFriday = getNextFriday(nextFriday);
        is13Friday = is13Friday(nextFriday);
    }
    System.out.println(nextFriday);

}

public static LocalDate getNextFriday(LocalDate d) {
    return d.with(TemporalAdjusters.next(DayOfWeek.FRIDAY));
}

public static boolean is13Friday(LocalDate d) {
    return d.getDayOfMonth() == 13;
}
邢承弼
2023-03-14

只需在LocalDate中添加7天,即可获得预期的日期:

例如:

 LocalDate today = LocalDate.now();

 //tomorrow
 LocalDate tomorrow = today.plusDays(1);

 // next week day
 LocalDate nextWeekDay= today.plusDays(7);

或者通过这个得到它:

today.with(TemporalAdjusters.next(DayOfWeek.FRIDAY));
 类似资料:
  • 我需要使用获得给定日期后的下周五13号。 如何实施?

  • 问题内容: 下面的代码应在上周五的16:00:00返回。但它返回上周的星期五。如何解决? 更新。我现在使用以下方法-最好的方法吗? Upd2。仅举一个例子。假设今天是 2012年10月5日 。如果当前时间等于或小于 16:00 ,则应返回 2012年9月28日 ,否则返回 2012 年 10月5日 。 问题答案: 与链接的问题一样,您需要使用对象而不是。要获得最终结果,可以使用:

  • 问题内容: 我正在尝试使用以下格式获取完整LocalDate的周号: 我没有在Java 8 Date API中找到返回周数的函数,并且我尝试创建算法,但是没有用。 问题答案: 一个小警告。我没有测试过这个呢,但看着的API文档和,你应该这样做:

  • 问题内容: 让我解释一下自己。通过知道日期的星期数和年份: 但是现在我不知道如何获取该周第一天的日期。我一直在寻找Calendar,Date,DateFormat,但没有什么可能有用的… 有什么建议吗?(使用Java) 问题答案: 这些字段不返回值。这些是 常量,标识可以获取/设置/添加的对象中的字段。要实现所需的功能,您首先需要获取一个,将其清除并设置已知值。它将自动将日期设置为该周的第一天。

  • 问题内容: 如何使用Joda-Time API 获得下一个星期五。 在今天的是。在我看来,您必须决定本周星期五之前还是之后。请参阅此方法: 是否可以缩短时间或使用单缸衬套? PS:请不要建议我使用JDK的日期/时间。 Joda-Time是一个更好的API。 Java 8引入了更好的java.time包(Tutorial)。 问题答案: 随着java.time内置到Java 8及更高版本(框架教程)

  • 问题内容: 我想在下一个(例如)星期一的日期/时间创建的实例。 Java Time API中是否有任何方法,还是应该计算当前日期和目标日期之间有多少天,然后使用LocalDateTime.of()方法? 问题答案: 无需手动进行任何计算。 您可以使用方法通过调节器来调节给定的日期。一周的第二天有内置的调节器: 返回下一个星期几调整器,它将日期调整为在调整日期之后指定的星期几中的第一个匹配项。 该代