estou querendo pegar as datas de uma semana inteira, tendo apenas a data de um dia.
Por exemplo tenho hoje 14/01/2008.
Iria obter 13,14,15,16,17,18,19 /01/2008.
Existe alguma API que faz isso ou vou ter que implementar na raça? O problema é devido aos meses com dias diferentes, etc.
importjava.util.*;importjava.text.*;classDiasDaMesmaSemana{publicstaticList<Date>diasDaMesmaSemana(Datedt){Calendarcal=Calendar.getInstance();cal.setTime(dt);cal.set(Calendar.HOUR_OF_DAY,1);// Devido ao horário de verão...cal.set(Calendar.MINUTE,0);cal.set(Calendar.SECOND,0);cal.set(Calendar.MILLISECOND,0);List<Date>ret=newArrayList<Date>();// Devemos coletar os dias da mesma semana. Para tanto, vamos pegar o dia da semana agora:intdiaSemana=cal.get(Calendar.DAY_OF_WEEK);// Digamos que hoje seja quarta-feira (WEDNESDAY = 4). O primeiro dia da semana é domingo (SUNDAY = 1),// e devemos contar desde o primeiro dia da semana (hoje - 4 + 1). CalendarcalFirst=(Calendar)cal.clone();calFirst.add(Calendar.DATE,-diaSemana+Calendar.SUNDAY);for(inti=0;i<7;++i){ret.add(calFirst.getTime());calFirst.add(Calendar.DATE,1);}returnret;}publicstaticvoidmain(String[]args)throwsParseException{DateFormatdf=newSimpleDateFormat("dd/MM/yyyy");Datedt=df.parse("14/01/2008");DateFormatdf2=newSimpleDateFormat("EEEEE, dd/MM/yyyy");List<Date>dias=DiasDaMesmaSemana.diasDaMesmaSemana(dt);for(Datedia:dias){System.out.println(df2.format(dia));}}}