java - 第二天 X 在 Y

标签 java date calendar

我需要根据用户输入的时间和日期来安排任务。这些任务每周重复一次,并且根据复选框值,我需要将它们设置为在那些日子启用。

例如,现在是 UTC+2 第六号星期三 15:40。如果用户想在每周三 12:00 安排一个任务,我想获取 11 月 13 日 12:00 的时间(以毫秒为单位)。如果任务设置为每周三16:00,我想要今天的时间。计划在每周四运行的任务会产生明天的毫秒表示。所以,基本上是最近的日期即将到来。我如何在 Java 中实现这个?

最佳答案

已弃用的 Date.getDay()函数解释了如何使用日历来执行此操作。 (日期仍然有效,如果您确实想使用它,尽管已被弃用)。

Calendar.get(Calendar.DAY_OF_WEEK);

就流程而言,您将拥有一个类,用于将事件的星期几存储为 int 和时间。

然后,您将评估今天的日期和时间:

  1. 评估今天是否是一周中的指定日期。 如果是,检查时间是否已经过去。 如果还没有,请合理安排今天的时间。 如果有,请在日历日期上添加 7 天以获得预期日期。
  2. 否则,如果一周中的预定日期早于一周中的今天: 用 7 减去这两天的差。(即,如果目标日期是星期日 (0),而今天是星期三 (3),则 7 - (3 - 0) = 4,因此在今天的日期上加上 4 天即可得到目标日期)
  3. 如果是在之后,则只需计算两天之间的差值(即,如果目标日期是星期六 (6) 而今天是星期三 (3),则 6 - 3 = 3,因此在今天的日期上添加 3 天即可得到目标日期)。

您可能还需要检查夏令时。

关于java - 第二天 X 在 Y,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19813708/

相关文章:

Java:如何通过存储在变量中的名称访问类的字段?

python - 将日期时间数组转换为字符串

php - 检查日期是否在当前时间的 7 天内

javascript - 如何在现有的 momentjs 对象中获取没有时间的日期?

iOS/OS X 日历应用程序和 CalDAV 服务自动发现

php - 我如何回应财政年度?

java - Hashmap put方法不会用char[][]类型编译?

java - 如何计算android上位图的java hashmap的大小

ios - 在 10 分钟切片中拆分最后两个小时

java - 在 java 中读取文本文件的问题 - 尽管存在但结果列表中缺少行