gpt4 book ai didi

java - 通过指定星期几获取下一个日期

转载 作者:行者123 更新时间:2023-11-29 08:36:24 24 4
gpt4 key购买 nike

我需要使用日历来执行此方法,基本上我得到特定的星期几 (1,2,3) 每个 int 代表星期几(星期一,星期二),而不是按此顺序,但逻辑是这样的.

我需要获取下一个星期几的日期,假设今天是星期一,用户选择星期三,我需要获取下一个星期三的日期。

我现在的逻辑是这样的:

calendar.set(Calendar.DAY_OF_WEEK, dayOfWeek);
calendar.set(Calendar.HOUR_OF_DAY, hour);
calendar.set(Calendar.MINUTE, minute);
dateMatch = calendar.getTime();

day of week 是从一个slidePicker传过来的,表示具体的星期几,这个DAY_OF_WEEK不行,如果我把Wednseday他给我6

最佳答案

尽管您的问题文本只说要找到下一个 dayOfWeek,但您的代码还包括一天中的时间,格式为 hourminute.

假设您想要该组合在未来第一次出现,即 dayOfWeekhourminute,这意味着如果今天是dayOfWeek,如果一天中的时间晚于现在,则需要今天;如果一天中的时间早于现在,则需要下周。

你可以这样做:

int dayOfWeek = Calendar.WEDNESDAY;
int hour = 10; // 10 AM
int minute = 0;

Calendar cal = Calendar.getInstance(); // Today, now
if (cal.get(Calendar.DAY_OF_WEEK) != dayOfWeek) {
cal.add(Calendar.DAY_OF_MONTH, (dayOfWeek + 7 - cal.get(Calendar.DAY_OF_WEEK)) % 7);
} else {
int minOfDay = cal.get(Calendar.HOUR_OF_DAY) * 60 + cal.get(Calendar.MINUTE);
if (minOfDay >= hour * 60 + minute)
cal.add(Calendar.DAY_OF_MONTH, 7); // Bump to next week
}
cal.set(Calendar.HOUR_OF_DAY, hour);
cal.set(Calendar.MINUTE, minute);
cal.set(Calendar.SECOND, 0);
cal.set(Calendar.MILLISECOND, 0);

System.out.println(cal.getTime()); // Prints: Wed May 10 10:00:00 EDT 2017

关于java - 通过指定星期几获取下一个日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43853375/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com