2015-09-04 10 views
8

Come posso ottenere un numero di giorno da una data data utilizzando l'API di Calendar.Numero di giorno specifico utilizzando l'API di calendario java

Esempio:
02/01/2016 è il primo sabato nel 2016 (risultati 1)
10/01/2015 è il secondo sabato nel 2015 (risultato 2)

ho pensato posso usare il numero settimana

int week = calendar.get(Calendar.WEEK_OF_YEAR); 

Ma non funziona quando abbiamo un anno precedente di 53 settimane

Esempio: 09/01/2016 torneranno 1 quando è il secondo Sabato del 2016

+0

Bewar e che la definizione di Calendar.WEEK_OF_YEAR varia in base alle impostazioni internazionali. –

+0

Non hai definito cosa significhi per te un anno della settimana. Intendi la definizione standard [ISO 8601] (https://en.wikipedia.org/wiki/ISO_week_date) (il primo giovedì dell'anno solare è la settimana n. 1 che inizia il lunedì)? O intendi la prima settimana il 1 ° gennaio? O la settimana # 1 ha la prima domenica o qualche altro giorno della settimana? Qualcos'altro? –

risposta

0

risolto con setMinimalDaysInFirstWeek()

1 - Prendo il numero della settimana, come ne ho bisogno: int weekNbr = cal.get(Calendar.WEEK_OF_YEAR);

2 - ho impostato il numero di giorni prima settimana a 1: cal.setMinimalDaysInFirstWeek(1);

3- settimana numero sarà ora riflettere il numero corretto del weekend: int weekendNbr = cal.get(Calendar.WEEK_OF_YEAR);

Problemi correlati