Firstly, you should be looking at how to construct the relevant LocalDate
- that's all the information you logically have if you've got a WeekYear
and WeekOfWeekYear
. You can then get a LocalDateTime
from a LocalDate
with AtMidnight
if you really want - but I'd stick with LocalDate
until you really need anything else, as that way you're synthesizing less information.
I don't believe we currently make this particularly simple, to be honest - although the underlying engine supports enough computations that we could add it fairly easily.
Without any changes to the API, I would suggest you'd probably be best off with something like:
- Construct June 1st within the desired year, which should have the same
WeekYear
(I'm assuming you're using the ISO calendar...)
- Get to the first day of the week (
date = date.Previous(IsoDayOfWeek.Monday)
)
- Work out the current week number
- Add or subtract the right number of weeks
So something like:
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);
}
Not terribly pleasant or efficient, but not too bad... if you find yourself wanting to do a lot of work with WeekOfWeekYear
and WeekYear
, please raise feature requests for the kind of thing you want to do.
EDIT: Just as an update, we now support this:
LocalDate date = LocalDate.FromWeekYearWeekAndDay(year, week, IsoDayOfWeek.Monday);