有没有办法使用任何库来做这样的事情。
DateTime getStartingDate(String year, int weekNo){
//should return the starting day of the given weekNo of the given year.
}
Ex:year = 2016 weekNo = 1
DateTime return = 3月3日(周日至周六格式) = 1月4日(周一至周日格式)
答案 0 :(得分:3)
作为一个起点,您似乎想要在一周中的某一天(例如星期日或星期一)开始的第一个完整周。
这可以通过以下方式实现:
import static java.time.temporal.TemporalAdjusters.nextOrSame;
public static LocalDate getStartingDate(int year, int weekNo, DayOfWeek weekStart) {
//should check that arguments are valid etc.
return Year.of(year).atDay(1).with(nextOrSame(weekStart)).plusDays((weekNo - 1) * 7);
}
或作为替代方案:
return Year.of(year).atDay(1).with(ALIGNED_WEEK_OF_YEAR, weekNo).with(nextOrSame(weekStart));
你这样称呼它:
import static java.time.DayOfWeek.MONDAY;
import static java.time.DayOfWeek.SUNDAY;
System.out.println(getStartingDate(2016, 1, SUNDAY)); //2016-01-03
System.out.println(getStartingDate(2016, 1, MONDAY)); //2016-01-04