In primo luogo, si dovrebbe guardare a come costruire il relativo LocalDate
- è tutto quello che le informazioni che avete logicamente se hai uno WeekYear
e WeekOfWeekYear
. È quindi possibile ottenere uno LocalDate
da LocalDate
con se lo si desidera realmente, ma resterei con LocalDate
fino a quando non si è effettivamente , in questo modo si sintetizzano meno informazioni.
Non credo che attualmente rendiamo questo particolarmente semplice, a dire il vero - anche se il motore sottostante supporta calcoli sufficienti che potremmo aggiungere abbastanza facilmente.
Senza alcuna modifica alle API, vorrei suggerire si sarebbe probabilmente meglio fuori con qualcosa di simile:
- Construct 1 giugno entro l'anno desiderato, che dovrebbe avere lo stesso
WeekYear
(sto assumendo si sta utilizzando il calendario ISO ...)
- arrivare alla prima giornata della settimana (
date = date.Previous(IsoDayOfWeek.Monday)
)
- Calcolare il numero della settimana corrente
- aggiungere o sottrarre il giusto numero di settimane
Quindi qualcosa di simile:
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);
}
Non eccessivamente piacevole o efficiente, ma non troppo male ... se vi trovate a voler fare un sacco di lavoro con WeekOfWeekYear
e WeekYear
, si prega di alzare le richieste di funzionalità per il tipo di cosa che vuoi fare.
EDIT: Proprio come un aggiornamento, ora supportiamo questo:
LocalDate date = LocalDate.FromWeekYearWeekAndDay(year, week, IsoDayOfWeek.Monday);
fonte
2012-07-05 11:00:42
Hai controllato questo http://stackoverflow.com/questions/7130948/joda-time-most-recent-week-and- mese ? – V4Vendetta
@ V4Vendetta: Questo è Joda Time, che è molto più ambivalente su come vengono costruite le date. Il tempo di Noda è per lo più annuale/mese/giorno-centrico. Questo non vuol dire che sia impossibile :) –