Use um Date para guardar a data desejada. Atenção ao criar a data.
Use o método setTime de Calendar para atribuir essa data à variável do tipo Calendar.
Use o SimpleDateFormat para formatar a data. Date data = new Date(110, 3, 11); // dia: 11/4/2010
Calendar cal = Calendar.getInstance();
cal.setTime(data);
SimpleDateFormat formatador = new SimpleDateFormat("dd/MM/yyyy");
System.out.println(formatador.format(data));
Somente com o Calendar eu não sei como formatar a data.
public static List<String[]> getDiasUteisSemanaMes(String data){
SimpleDateFormat format = new SimpleDateFormat("dd/MM/yyyy");
Date date = new Date();
try {
date = format.parse(data);
} catch (ParseException e) {
e.printStackTrace();
}
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
int diasMes = calendar.getActualMaximum(Calendar.DAY_OF_MONTH);
List<String[]> lista = new ArrayList<String[]>();
StringBuffer sb = new StringBuffer();
int fimSemana = 0;
//varre todo o mes
for(int i=1;i<=diasMes;i++){
//seta o dia do mes o dia emque está o lop. Ex: dia 1 ou 2 ou 3
calendar.set(Calendar.DAY_OF_MONTH, i);
//pergunta se o dia da semana atua(setado pela linha a cima) é sabado ou domingo, se sim ignora se nao continua
if(calendar.get(Calendar.DAY_OF_WEEK) == Calendar.SATURDAY || calendar.get(Calendar.DAY_OF_WEEK) == Calendar.SUNDAY){
//fimSemana ++;
continue;
}
//adiciona 1 na variavel fimSemana para termos o controle quando for sabado ou domingo
fimSemana ++;
int diaSemana = fimSemana+1;
//se o dia da semana pulou 2 dias entao passou-se um fim de semana
if(i!=diaSemana-1){
//System.out.println("fim de semana");
fimSemana=i;
//adiciona marcador
sb.append("n");
}
//adiciona dia mais marcador
sb.append(""+i+"s");
}
da uma olhada ai que vai clarear sua mente…espero!!!