Como somar duas horas no Java, sei que já existe tópicos sobre isso, mas me ajudem por favor

4 respostas
T

Supondo que o usuário passa dois horários para serem somados. Fiz assim mas me gerou um erro
que não consigo encontrar a causa...
Se alguém souber o que há de errado me ajudem por favor...

public class ClasseMain {
  
 public static void main(String args[]){

    GregorianCalendar gc = new GregorianCalendar();

    //HORA INFORMADA Pelo usuário 02:10:01
    SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
    
    //int ano, mes, dia, hora, minutos e segundos
    gc.set(2011, 10, 17, 02, 10, 01);
    
    //HORA PARA SOMAR 00:10:10
    gc.add(Calendar.HOUR,00);
    gc.add(Calendar.MINUTE,35);
    gc.add(Calendar.SECOND,10);
  
    System.out.println("HORA SOMADA: "+sdf.format(gc.getTime())); 
   


	}
}

Porque o está sendo acrescentado mais um mês ao mostrar a Data?
Abraço...

run:
HORA SOMADA: 17/11/2011 02:45:11
CONSTRUÍDO COM SUCESSO (tempo total: 0 segundos)

Sendo a data atual 17/10/2011 ?

RESPONDIDO GALERA

4 Respostas

Eric_Yuzo

A classe Calendar usa constantes que vão de 0 a 11 para representar os meses, e não 1 a 12. Portanto ela está enxergando o número 10 como se fosse novembro.

Então você pode subtrair um do mês na hora de passar o parâmetro ou passar a constante equivalente:

gc.set(2011, Calendar.OCTOBER, 17, 02, 10, 01);
T

Muito obrigado Eric, valeu pela resposta…
Abraço :smiley:

Diguinho.Max

Tiquinho pois se já resolveu nao esquece de fechar o post coloque como resolvido.
assim evita da gnt entrar sendo que ja foi resolvido.

agradecido se for possivel.

T

Valeu Diguinho.Max, obrigado por lembrar.

Criado 17 de outubro de 2011
Ultima resposta 24 de out. de 2011
Respostas 4
Participantes 3