当前位置: 首页 > 面试题库 >

获取一周中给定日期的下一个LocalDateTime

穆正青
2023-03-14
问题内容

我想LocalDateTime在下一个(例如)星期一的日期/时间创建的实例。

Java Time API中是否有任何方法,还是应该计算当前日期和目标日期之间有多少天,然后使用LocalDateTime.of()方法?


问题答案:

无需手动进行任何计算。

您可以使用方法通过调节器来调节给定的日期LocalDateTime.with(adjuster)。一周的第二天有内置的调节器TemporalAdjusters.next(dayOfWeek)

返回下一个星期几调整器,它将日期调整为在调整日期之后指定的星期几中的第一个匹配项。

public static void main(String[] args) {
    LocalDateTime dateTime = LocalDateTime.now();
    LocalDateTime nextMonday = dateTime.with(TemporalAdjusters.next(DayOfWeek.MONDAY));
    System.out.println(nextMonday);
}

该代码将根据当前日期返回下一个星期一。

使用静态导入,这使代码更易于阅读:

LocalDateTime nextMonday = dateTime.with(next(MONDAY));

请注意,如果当前日期已经在星期一,则此代码将返回下一个星期一(即下周的星期一)。如果要在这种情况下保留当前日期,可以使用nextOrSame(dayOfWeek)



 类似资料:
  • 问题内容: 我想找到星期一,星期二,星期三等的日期戳。如果这个星期还未到这一天,我希望该日期为本周,否则为下周。谢谢! 问题答案: 看到 通过查看星期数,您可能会发现自己是否已经过了这一天:

  • 问题内容: 我试图获取给定月份和年份的第一个日期和最后一个日期。我使用以下代码以yyyyMMdd格式获取最后日期。但是无法获得这种格式。另外,我希望开始日期采用相同的格式。我仍在努力。任何人都可以帮助我修复以下代码。 问题答案: 获取 开始日期 ( 注意 :在开始日期中, 日期 = 1) 对于格式化

  • 问题内容: 如果我有特定的星期数(例如51)和给定的年份(例如2008),我如何找到同一周的第一个星期一的日期? 非常感谢 问题答案: 假设一周的第一天是星期一,请使用,而不是一周的第一天是星期日。有关详细信息,请参见strptime文档。 更新: 固定星期数。该指令基于0,因此第51周应输入为50,而不是51。

  • 如何通过给出一个月中的一周和一周中的一天来获得日期。 示例:如果我需要2018年11月的第三个星期二。 月周:3,周日:3 预计日期:2018年11月20日 但我们得到的价值是:2018年11月13日。因为本月的开始日(星期四)少于预期的日期(星期二)。 我怎样才能得到正确的日期??

  • 我需要使用日历来实现这个方法,基本上我得到了一周中的具体日期(1,2,3),每个int代表一周中的一天(周一,周二),不是按这个顺序,但逻辑是这样的。 我需要的是获取一周中第二天的日期,假设今天是周一,用户选择Wednesday,我需要获取下周三的日期。 目前我的逻辑是: day of week是从slidePicker传递过来的,代表一周中的特定日期,如果我把Wednesday放在他给我的6上,

  • 我的程序中有这5个按钮:星期一、星期二、星期三、星期四和星期五,它们在我的菜单屏幕上。我现在想要的是,当我的程序启动和我的菜单屏幕打开时,按钮包含的日子+一天的日期。 例如,今天我们是5月4日(星球大战快乐日!)按钮应该是这样的: 星期一04/30星期二05/01星期三05/02星期四05/03星期五05/04 但是当我打开下个星期一的菜单屏幕时,它应该是这样的:星期一05/07星期二05/08星