Comparar dia e mes entres datas

Eu estou utilizando ele segue o código:


   
    protected String getNextNews(String data, String periodo, String preferedDay)
    {
        cal.getTime();
        cal.add(Calendar.DATE, Integer.parseInt(periodo));         
        System.out.println(cal.getTime());       
        System.out.println(nexDate);   
        nexDate = sd.format(cal.getTime());
        return nexDate;
    }

só que eu não sei como fazer para corrigir esta data para a data preferida do meu cliente neste caso é a preferedDay que possui atributos como segunda, terça, etxc

quais são os valores que vem nos 3 argumentos desse método?

e por que data é uma String ?

A String data seria a data atual, mas troquei pelo cal.getTime(); ( que irá pegar a data atual), a String período vem o tempo por exemplo 15 dias, 5 dias, 1 dia, a String preferedDay vem o dia dos neswletter por exemplo segunda, terça, quarta.

ta, somar o período você já consegue fazer facilmente com Calendar, agora o que você quer fazer com essa variável preferedDay ?

Supondo que eu somei e bele, eu tenho um método que me traz o dia da semana eu envio a data e ele me retorna se é quarta, quinta, segunda, eu necessito fazer uma cálculo por ex: 01/08 quarta, preferedDay = segunda

[code]
cal.add(Calendar.DATE, -2);

[quote]

Mas de uma forma mais automatizada sem ficar em um monte de if else;

Obrigado

Ops corrigindo

cal.add(Calendar.DATE, Integer.parseInt(periodo)-2);    

você pode fazer uma POG, né…

você consegue saber o índice do dia da semana pela variával Calendar.DAY_OF_WEEK, pode fazer um método que retorne o nome do dia, no padrão que você usa o preferedDay e comparar…

Então o meu problema é como fazer essa POG.

Rodrigo obrigado pela sua paciência, consegui fazer e está funcionando. muito obrigado