Retornar as datas da semana apartir de uma data

Bom dia,

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.

import java.util.*;
import java.text.*;

class DiasDaMesmaSemana {
    public static List<Date> diasDaMesmaSemana (Date dt) {
        Calendar cal = 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 = new ArrayList<Date>();
        // Devemos coletar os dias da mesma semana. Para tanto, vamos pegar o dia da semana agora:
        int diaSemana = 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). 
        Calendar calFirst = (Calendar) cal.clone();
        calFirst.add (Calendar.DATE, -diaSemana + Calendar.SUNDAY); 
        for (int i = 0; i < 7; ++i) {
            ret.add (calFirst.getTime());
            calFirst.add (Calendar.DATE, 1);
        }
        
        return ret;
    }
    public static void main(String[] args) throws ParseException {
        DateFormat df = new SimpleDateFormat ("dd/MM/yyyy");
        Date dt = df.parse ("14/01/2008");
        DateFormat df2 = new SimpleDateFormat ("EEEEE, dd/MM/yyyy");
        List<Date> dias = DiasDaMesmaSemana.diasDaMesmaSemana (dt);
        for (Date dia : dias) {
            System.out.println (df2.format (dia));
        }
    }
}

opa
valeu obrigado vou testar na minha aplicação. :smiley: