我正在尝试用 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/