首先,你應該看如何構建相關LocalDate
- 這就是你在邏輯上有信息如果你有WeekYear
和WeekOfWeekYear
。如果你真的想要的話,你可以從LocalDate
得到一個LocalDateTime
,AtMidnight
,但是我會堅持LocalDate
,直到你真的需要其他任何東西,這樣你就可以合成更少的信息。
我不認爲我們現在做這個特別簡單,說實話 - 雖然底層引擎支持足夠的計算,我們可以添加它相當容易。
沒有任何變化的API,我建議你大概會是最好關閉的東西,如:所需一年內
- 構建6月1日,它應該具有相同的
WeekYear
(我假設您正在使用的ISO日曆...)
- 獲取到一週的第一天(
date = date.Previous(IsoDayOfWeek.Monday)
)
- 工作走出目前的週數
- 加上或減去周權數
因此,像:
public static LocalDate LocalDateFromWeekYearAndWeek(int weekYear,
int weekOfWeekYear)
{
LocalDate midYear = new LocalDate(weekYear, 6, 1);
LocalDate startOfWeek = midYear.Previous(IsoDayOfWeek.Monday);
return startOfWeek.PlusWeeks(weekOfWeekYear - startOfWeek.WeekOfWeekYear);
}
並不十分愉快的或有效的,但不能太壞 ...如果你發現自己想要做了很多工作,與WeekOfWeekYear
和WeekYear
,請提出功能要求對於你想要做的事情。
編輯:只是作爲一個更新,我們現在支持這一點:
LocalDate date = LocalDate.FromWeekYearWeekAndDay(year, week, IsoDayOfWeek.Monday);
你檢查這http://stackoverflow.com/questions/7130948/joda-time-most-recent-week-and-月? – V4Vendetta 2012-07-05 10:55:11
@ V4Vendetta:這就是喬達時間,這對於如何構建日期來說更加矛盾。野田時間大多是年/月/日爲中心。這並不是說這是不可能的:) – 2012-07-05 10:56:02