Talvez isto te atenda...

  public static void addDaysToDate(Timestamp data, int value) {
    GregorianCalendar gc = new GregorianCalendar();
    gc.setTime(data);
    gc.add(Calendar.DATE, value);
    data.setTime(gc.getTime().getTime());
  }
 
[],s
Antonio Manoel
----- Original Message -----
Sent: Thursday, April 25, 2002 11:24 AM
Subject: [java-list] BUG Java (GregorianCalendar) ?

Olá,
 
Estive utilizando a classe GregorianCalendar e observei que ao criar uma instancia com a data de 13/10/2001 e adicionar 1 dia a data ficou errada. O mesmo cálculo com datas diferentes funciona. Abaixo está o programa e o resultado apresentado durante a execução.
Será que isso eh um bug do java? Alguém sabe o que está acontecendo?
 
Utilizo WIN98 com JDK 1.4.0.
 
Obrigado pela atenção.
 
 
=== Programa (tst.java) ===
 
import java.util.GregorianCalendar;
import java.util.Calendar;
 
public class tst {
   public static void main(String args[]) {
      GregorianCalendar cg;
 
      System.out.println("\n- Exemplo 1 (correto):");
      cg = new GregorianCalendar(2001,9,12);
      System.out.println("Hoje..: " + cg.getTime());
      cg.add(Calendar.DAY_OF_MONTH, 1);
      System.out.println("Amanha: " + cg.getTime());
 
      System.out.println("\n- Exemplo 2 (ERRO!):");
      cg = new GregorianCalendar(2001,9,13);
      System.out.println("Hoje..: " + cg.getTime());
      cg.add(Calendar.DAY_OF_MONTH, 1);
      System.out.println("Amanha: " + cg.getTime());
 
      System.out.println("\n- Exemplo 3 (correto):");
      cg = new GregorianCalendar(2001,9,14);
      System.out.println("Hoje..: " + cg.getTime());
      cg.add(Calendar.DAY_OF_MONTH, 1);
      System.out.println("Amanha: " + cg.getTime());
   }
}
 

=== Resultado ===
 
- Exemplo 1 (correto):
Hoje..: Fri Oct 12 00:00:00 BRT 2001
Amanha: Sat Oct 13 00:00:00 BRT 2001
 
- Exemplo 2 (ERRO!):
Hoje..: Sat Oct 13 00:00:00 BRT 2001
Amanha: Sat Oct 13 23:00:00 BRT 2001
 
- Exemplo 3 (correto):
Hoje..: Sun Oct 14 01:00:00 BRST 2001
Amanha: Mon Oct 15 01:00:00 BRST 2001
 
 

Responder a