java - 例如查找下周一的 Java 日期 6 :00,

标签 java date time

我正在尝试用 Java 创建一些代码,让某人可以确定指定周的下一个循环时间的日期。这很难解释,所以我举个例子。假设现在是 3 月 1 日(周四),用户想知道下周六 5:00 是什么时候,代码应该输出 3 月 3 日 5:00 作为日期变量,如果是 3 月 4 日,程序应该输出 3 月 10 日等等……

然而,用户可以指定他们想要的一周中的什么时间。这是用一个 long 值完成的,该值从星期四 0:00 开始以毫秒为单位偏移一周中的时间。我无法解决这个问题,但这是我到目前为止所得到的:

public static long findNextTimeOfTheWeek(long offset)
{
    return System.currentTimeMillis() - ((System.currentTimeMillis() - offset) % 604800000) + 604800000;
}

如果有人能提供帮助,将不胜感激。如果需要更多说明,请直接询问。附言604800000 是一周的毫秒数。

最佳答案

java.time

使用 Java 8 内置的 java.time 框架。

import java.time.DayOfWeek;
import java.time.LocalDateTime;
import static java.time.temporal.TemporalAdjusters.nextOrSame;

LocalDateTime now = LocalDateTime.now(); // 2015-11-22T09:32:50.045 (Sunday)
now.with(nextOrSame(DayOfWeek.MONDAY));  // 2015-11-23T09:32:50.045 (Monday)

如果您确实需要一周中的下一天,即使您当前的日期满足此限制,您也可以使用

import static java.time.temporal.TemporalAdjusters.next;   

now.with(next(DayOfWeek.MONDAY)); // 2015-11-30T09:32:50.045 (Monday)

关于java - 例如查找下周一的 Java 日期 6 :00,,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9612328/

相关文章:

java - 如何在 JQuery 和 JSF(Myfaces Tomahawk 组件库)之间发送/接收 json 对象

java - 在 Eclipse 的 Java 构建路径中有另一个项目的 gradle 等价物是什么?

linux - Java war 文件被错误地(?)检测为无效的 zip 文件

javascript - 从 Javascript 获取日期会出现奇怪的值

android - 仅在 android 中的 Lollipop 5.0 中显示带有月份和年份的日期选择器

java - 从两个排序数组的交替元素生成所有可能的排序数组

javascript - 有没有更好的方法来智能排序日期?

mysql - 同一列中两行中两次之间的秒数差异 - MySql

linux - 如何创建简单的 BASH 脚本,回显时间和日期

MySQL - 以正确的格式提取时间