Ciao, sicuramente è una cacchiata ma ho riletto il codice diverse volte e non ne sono mai venuto a capo...
codice:
package Control;

import java.util.Calendar;

public class DateUtil {
	private static int currentWeek = Calendar.getInstance().get(Calendar.WEEK_OF_YEAR);
	private static int currentYear = Calendar.getInstance().get(Calendar.YEAR);
	
	private static int weekPointer = Calendar.getInstance().get(Calendar.WEEK_OF_YEAR);
	private static int yearPointer = Calendar.getInstance().get(Calendar.YEAR);

	public static int getCurrentWeek(){
		return currentWeek;
	}

	public static int getWeekPointer(){
		return weekPointer;
	}

	public static String getCurrentDate(){
		int giorno = Calendar.getInstance().get(Calendar.DAY_OF_MONTH);
		int mese = Calendar.getInstance().get(Calendar.MONTH);
		int anno = Calendar.getInstance().get(Calendar.YEAR);
		return giorno+"/"+mese+"/"+anno;
	}
	
	public static int getCurrentYear(){
		return currentYear;
	}
	
	public static int[] getDaysOfWeekPointer(){
		Calendar calendar = Calendar.getInstance();
		calendar.setFirstDayOfWeek(1);
		calendar.clear();
		calendar.set(Calendar.WEEK_OF_YEAR, weekPointer);
		calendar.set(Calendar.YEAR, yearPointer);
		int[] d = new int[7];
		d[0] = calendar.get(Calendar.DAY_OF_MONTH);
		calendar.add(Calendar.DAY_OF_MONTH,1);
		d[1] = calendar.get(Calendar.DAY_OF_MONTH);
		calendar.add(Calendar.DAY_OF_MONTH,1);
		d[2] = calendar.get(Calendar.DAY_OF_MONTH);
		calendar.add(Calendar.DAY_OF_MONTH,1);
		d[3] = calendar.get(Calendar.DAY_OF_MONTH);
		calendar.add(Calendar.DAY_OF_MONTH,1);
		d[4] = calendar.get(Calendar.DAY_OF_MONTH);
		calendar.add(Calendar.DAY_OF_MONTH,1);
		d[5] = calendar.get(Calendar.DAY_OF_MONTH);
		calendar.add(Calendar.DAY_OF_MONTH,1);
		d[6] = calendar.get(Calendar.DAY_OF_MONTH);
		return d;
	}
	
	public static int nextWeek(){
		Calendar calendar = Calendar.getInstance();
		calendar.clear();
		calendar.set(Calendar.WEEK_OF_YEAR, weekPointer);
		calendar.add(Calendar.WEEK_OF_YEAR,1);
		weekPointer = calendar.get(Calendar.WEEK_OF_YEAR);
		yearPointer = calendar.get(Calendar.YEAR);
		return weekPointer;
	}
	public static int prevWeek(){
		Calendar calendar = Calendar.getInstance();
		calendar.clear();
		calendar.set(Calendar.WEEK_OF_YEAR, weekPointer);
		calendar.add(Calendar.WEEK_OF_YEAR, -1);
		weekPointer = calendar.get(Calendar.WEEK_OF_YEAR);
		yearPointer = calendar.get(Calendar.YEAR);
		return weekPointer;
	}
	public static int restoreWeek(){
		Calendar calendar = Calendar.getInstance();
		calendar.clear();
		calendar.set(Calendar.WEEK_OF_YEAR, currentWeek);
		weekPointer = calendar.get(Calendar.WEEK_OF_YEAR);
		yearPointer = calendar.get(Calendar.YEAR);
		return weekPointer;
	}
}
Qualcuno mi spiega perchè richiamando diverse volte i metodi next, prev e restoreWeek ottengo il range corretto dei giorni della settimana tranne nel primo caso della chiamata getDaysOfWeekPointer()? Vi posto una schermata dei vari System.out.println()
codice:
La settimana attuale è la 41 e ha i seguenti giorni: 10, 11, 12, 13, 14, 15, 16, 
La settimana attuale è la 42 e ha i seguenti giorni: 18, 19, 20, 21, 22, 23, 24, 
La settimana attuale è la 43 e ha i seguenti giorni: 25, 26, 27, 28, 29, 30, 31, 
La settimana attuale è la 44 e ha i seguenti giorni: 1, 2, 3, 4, 5, 6, 7, 
La settimana attuale è la 41 e ha i seguenti giorni: 11, 12, 13, 14, 15, 16, 17, 
La settimana attuale è la 40 e ha i seguenti giorni: 4, 5, 6, 7, 8, 9, 10, 
La settimana attuale è la 39 e ha i seguenti giorni: 27, 28, 29, 30, 1, 2, 3, 
La settimana attuale è la 38 e ha i seguenti giorni: 20, 21, 22, 23, 24, 25, 26, 
La settimana attuale è la 37 e ha i seguenti giorni: 13, 14, 15, 16, 17, 18, 19,
come potete notare, alla prima chiamata i giorni sono sfasati di -1 mentre all'altra chiamata della settimana 41 è tutto come dovrebbe essere. Chi mi spiega perchè? sto impazzendo!