----- 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