como eu posso obter a data de 60 DIAS atrás, contando do dia atual?
Obter data de dias anteriores[resolvido]
7 Respostas
É mais ou menos assim:
Calendar cal = Calendar.getInstance();
cal.add (Calendar.DAY_OF_MONTH, -60);
Date dt = cal.getTime();
funcionou perfeitamente, eu tava usando o método roll , não tinha pensado em usar o negativo , rsrs obrigado!
Pergunta pq vc estava usando roll ?
porque foi oque eu lí que mais parecia com oque eu queria fazer, pelo que eu entendi com o meu ingles humilde heauaeh
rsrsr , ta certo do mais bom estudo .
Nao esqueça de editar o tópico , se estiver satisfeito eh claro .
O método “roll” é usado quando você quer “uma data 2 meses antes”, não “uma data 60 dias antes”. Uma “data 2 meses antes” é algo parecido com
O problema, é claro, é que se você usar “roll” com uma data em janeiro / 2010 (por exemplo), o resultado não será novembro/2009 e sim novembro/2010, o que é obviamente indesejado.
Por exemplo,
import java.util.*;
import java.text.*;
class TesteAddRoll {
public static void main(String[] args) {
DateFormat df = new SimpleDateFormat ("dd/MM/yyyy HH:mm:ss");
Calendar cal1 = Calendar.getInstance();
System.out.println ("Hoje : " + df.format (cal1.getTime()));
cal1.add (Calendar.DAY_OF_MONTH, -360);
System.out.println ("Hoje - 360 dias: " + df.format (cal1.getTime()));
Calendar cal2 = Calendar.getInstance();
// Note que "roll" não dá o resultado esperado, porque ele só altera
// o mês, não o ano.
cal1.roll (Calendar.MONTH, -12);
System.out.println ("Hoje - 12 meses: " + df.format (cal2.getTime()));
}
}
Roll não faz o que você acha que ele faz:
Calendar c = GregorianCalendar.getInstance();
for (int i = 0; i < 4; i++)
{
c.roll(Calendar.MONTH, true);
System.out.println(c.getTime());
}
Sun Nov 08 13:59:18 AMT 2009
Tue Dec 08 13:59:18 AMT 2009
Thu Jan 08 13:59:18 AMT 2009
Sun Feb 08 13:59:18 AMT 2009
Note que ele não muda o ano. Um roll de 60 dias não mudaria o mês.