Non sono sicuro se si vuole restituire un array di lunghezza pari al numero di giorni del mese, con ciascun valore come numero della settimana per il giorno corrispondente o un array di tutti i numeri di settimana distinti di per i giorni del mese specificato. Supponendo che è l'ex, questo dovrebbe funzionare:
public static int[] getWeeksOfMonth(int month, int year)
{
Calendar cal = Calendar.getInstance();
cal.set(Calendar.YEAR, year);
cal.set(Calendar.MONTH, month);
cal.set(Calendar.DAY_OF_MONTH, 1);
int ndays = cal.getActualMaximum(Calendar.DAY_OF_MONTH);
int weeks[] = new int[ndays];
for (int i = 0; i < ndays; i++)
{
weeks[i] = cal.get(Calendar.WEEK_OF_YEAR);
cal.add(Calendar.DATE, 1);
}
return weeks;
}
Se si desidera una serie di distinti numeri di settimana per i giorni nel mese specificato:
public static Integer[] getWeeksOfMonth(int month, int year)
{
Calendar cal = Calendar.getInstance();
cal.set(Calendar.YEAR, year);
cal.set(Calendar.MONTH, month);
cal.set(Calendar.DAY_OF_MONTH, 1);
Set<Integer> weeks = new HashSet<Integer>();
int ndays = cal.getActualMaximum(Calendar.DAY_OF_MONTH);
for (int i = 0; i < ndays; i++)
{
weeks.add(cal.get(Calendar.WEEK_OF_YEAR));
cal.add(Calendar.DATE, 1);
}
return weeks.toArray(new Integer[0]);
}
(notare che questo ultimo esempio restituisce un array di Integer
oggetti, ma è banale modificarlo per restituire un array di int
invece)
La questione non è chiara e accetta le risposte alle domande precedenti. – Emil
duplicato di una delle altre domande che non hai accettato! http://stackoverflow.com/questions/3941700/how-to-get-dates-of-a-week-i-know-week-number –