我有一个任务的问题。我必须得到下周五13日,因为给定的日期使用LocalDate。
你们有什么想法吗?
您可以使用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
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;
}
只需在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()方法? 问题答案: 无需手动进行任何计算。 您可以使用方法通过调节器来调节给定的日期。一周的第二天有内置的调节器: 返回下一个星期几调整器,它将日期调整为在调整日期之后指定的星期几中的第一个匹配项。 该代