En primer lugar, usted debe buscar la manera de construir el correspondiente LocalDate
- que es toda la información que tiene, lógicamente, si tienes un WeekYear
y WeekOfWeekYear
. A continuación, puede obtener un LocalDateTime
de LocalDate
con AtMidnight
si realmente desea, pero me quedaría con LocalDate
hasta que realmente necesite cualquier otra cosa, de esa manera estará sintetizando menos información.
No creo que actualmente lo hagamos particularmente sencillo, para ser honesto, aunque el motor subyacente admite suficientes cálculos que podríamos agregar con bastante facilidad.
sin cambios en la API, sugeriría que probablemente sea el mejor fuera con algo como:
- Constructo 1 ª de junio de en el año deseado, que debe tener el mismo
WeekYear
(estoy asumiendo que está utilizando el calendario ISO ...)
- llegar a la primera día de la semana (
date = date.Previous(IsoDayOfWeek.Monday)
)
- Calcular el número actual semana
- sumar o restar el número correcto de semana
Así que algo como:
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);
}
No muy agradable y eficiente, pero no demasiado mal ... si usted se encuentra con ganas de hacer un montón de trabajo con WeekOfWeekYear
y WeekYear
, por favor, levanten las peticiones de características para el tipo de cosas que quieres hacer.
EDIT: Al igual que una actualización, ahora admitimos esto:
LocalDate date = LocalDate.FromWeekYearWeekAndDay(year, week, IsoDayOfWeek.Monday);
¿verificó esta http://stackoverflow.com/questions/7130948/joda-time-most-recent-week-and- mes? – V4Vendetta
@ V4Vendetta: Eso es Joda Time, que es mucho más ambivalente sobre cómo se construyen las fechas. El tiempo de Noda es principalmente año/mes/día céntrico. Eso no quiere decir que sea imposible :) –