Como faço para diminuir duas horas?

3 respostas
V

galera Como faço para diminuir duas horas? seja em Date ou GregorianCalendar???

3 Respostas

E

Com Calendar pode ser usado o método add, como é uma subtração, passe um número negativo:

calendar.add(Calendar.HOUR_OF_DAY, -2); //subtrai 2 horas
V

mas são duas classes Calendar, existe algum método direto para isso?

E

Eu tinha entendido que era para subtrair duas horas de um Date ou Calendar. Mas você quer subtrair um data de outra, certo? Nunca fiz isso, mas a ideia seria algo do tipo:

long d = calFinal.getTimeInMillis() - calInicial.getTimeInMillis(); // d guarda a diferença entre os calendars em milissegundos. Em seguida teria de tratar este valor fazendo divisões para converter em segundos, minutos ou horas. long dHoras = d / (60 * 60 * 1000); //Diferença em horas long dMinutos = d / (60 * 1000); //Diferença em minutos long dSegundos = d / 1000; //Diferença em segundos
Mas para o caso de trabalhar com cálculo de horas e datas, o pessoal recomenda bastante a API Joda-Time

Criado 10 de novembro de 2010
Ultima resposta 10 de nov. de 2010
Respostas 3
Participantes 2