展开全部
我的理解是如果输入的星期等于当前日期的星期数,那么返回下一个周对应星期数的日62616964757a686964616fe78988e69d8331333365653931期,否则返回当前日期往后最近的一个匹配的星期数的日期。如果我的理解没问题的话下面代码就能满足你的要求:import java.util.Calendar;
import java.util.Date;
public class Main {
public static void main(String[] args) {
System.out.println(getDateByWeek(2));
}
/**
* 根据星期获取日期
*
* @param week 星期几 1代码星期日,2代表星期一。。。7代表星期六
* @return
*/
public static Date getDateByWeek(int week) {
int targetWeek = week;
Calendar c = Calendar.getInstance();
// 当前日期星期数
int currWeek = c.get(Calendar.DAY_OF_WEEK);
if (currWeek == targetWeek) {
// 如果所给星期数和当前日期星期数相等则向后推7天
c.add(Calendar.DAY_OF_MONTH, 7);
return c.getTime();
}
do {
// 向后推一天,直到星期数与所给星期数相同
c.add(Calendar.DAY_OF_MONTH, 1);
} while (targetWeek != c.get(Calendar.DAY_OF_WEEK));
return c.getTime();
}
}