Java - Ayuda con Restar horas en java

 
Vista:

Ayuda con Restar horas en java

Publicado por Eduardo (4 intervenciones) el 19/05/2006 21:51:28
Buenas Tardes Amigos programadores
Tengo un grave problema tengo dos formatos de hora 3:00:00 pm y 4:30:00
y necesito restar entas dos horas para q me de la diferencia en horas minutos y segundos

Yo lo tengo de esta manera q me calculan las horas

Date hora1 = new SimpleDateFormat().parse("19/05/2006 05:00:00");
Date hora2 = new SimpleDateFormat().parse("19/05/2006 08:30:30");
long lantes = hora1.getTime();
long lahora = hora2.getTime();
System.out.println((lahora - lantes)/3600000);

Pero no se como hacer para q me devuelva los minutos y segundos

Ejemplo
3:00:00
4:30:00
resultado 1: 30: 00 esta es la manera en que quiero el resutado

Gracias a quien me pued ayudar
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Ayuda con Restar horas en java

Publicado por Juan (131 intervenciones) el 19/05/2006 23:34:20
Fijate, date cuenta que esa division no es exacta.
((int)((lahora - lantes)/3600000) * 3600000) te da el numero de horas, si a la diferencia de las horas de entrada le resta eso tienes el numero de microsegundos que falta, si a eso lo divides entre 60000 tienes el numero de minutos, y si el tiempo no es exacto aun te queda un remanente que es el numero de segundos. Espero haberme explicado, cualquier duda comentala por aca
Juan
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ayuda con Restar horas en java

Publicado por Christian Arias (1 intervención) el 23/11/2007 20:45:32
Amigos yo he peliado por hacer sumas o restas de horas en java pero por mas que busque no encontre algo q me de valores exactos asi q emplee estos procesos q pueden colocarla en una funcion, esto si es super exacto te da las horas, minutos y segundos,

El pedazo de codigo q esta alli es de un programa de control de asistencia, espero lo entiendan y les sirva, recien estoy aprendiendo esto del java

rst =ConexionBD.Consulta("select * from Horas where codigoEmpleado='" + txtcodigo.getText() + "' and fecha ='" + txtFecha.getText() + "'" );
rst.next();

int HoraIngreso = rst.getTime(3).getHours();
int MinutoIngreso = rst.getTime(3).getMinutes();
int SegundosIngreso = rst.getTime(3).getSeconds();
int horaSalidaLounch = rst.getTime(4).getHours();
int MinutoSalidaLounch = rst.getTime(4).getMinutes();
int SegundosSalidaLounch = rst.getTime(4).getSeconds();
int HoraRetornoLounch = rst.getTime(5).getHours();
int MinutoRetornoLounch = rst.getTime(5).getMinutes();
int SegundosRetornoLounch = rst.getTime(5).getSeconds();
int HoraSalida = rst.getTime(6).getHours();
int MinutoSalida = rst.getTime(6).getMinutes();
int SegundosSalida = rst.getTime(6).getSeconds();

horas = ((horaSalidaLounch - HoraIngreso) + ( HoraSalida - HoraRetornoLounch));
if (MinutoSalidaLounch >= MinutoIngreso)
{
min1 = (MinutoSalidaLounch - MinutoIngreso);
}
else
{
min1 = MinutoIngreso - MinutoSalidaLounch;
}
if (MinutoRetornoLounch >= MinutoSalida)
{
min2 = (MinutoRetornoLounch - MinutoSalida);
}
else
{
min2 = (MinutoSalida -MinutoRetornoLounch);
}
//CALCULA LOS MINUTOS
minutos = min2+min1;

if (SegundosSalidaLounch >= SegundosIngreso)
{
seg1 = (SegundosSalidaLounch - SegundosIngreso);
}
else
{
seg1 = SegundosIngreso - SegundosSalidaLounch;
}
if (SegundosRetornoLounch >= SegundosSalida)
{
seg2 = (SegundosRetornoLounch - SegundosSalida);
}
else
{
seg2 = (SegundosSalida - SegundosRetornoLounch);
}
segundos = seg1 + seg2;

JOptionPane.showMessageDialog(null, "El día de hoy " + txtFecha.getText()+ " trabajo " +horas +":"+minutos+":" + segundos, "Hasta Mañana", 2);
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ayuda con Restar horas en java

Publicado por Omar (1 intervención) el 14/01/2011 19:53:15
@Cristian Arias.
Tú código es inseguro y medio. Qué tal y te manden un precioso "'); DROP TABLE usuarios;"

Hay que leer un poco más las API (en 2007 ya estaba Java 5, creo ya había mejores maneras de sacar la fecha).
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ayuda con Restar horas en java

Publicado por Diana (1 intervención) el 21/11/2013 17:07:01
Hola que tal? podrias enviarme el codigo completo. porque copiando solo eso no me sale. no se donde poner el nombre de las variables .. porfavor..
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ayuda con Restar horas en java

Publicado por Jose Luis (1 intervención) el 03/04/2007 10:10:00
A ver si te sirve con esto


Date hora1 = new SimpleDateFormat().parse("19/05/2006 05:00:00");
Date hora2 = new SimpleDateFormat().parse("19/05/2006 08:30:30");
long lantes = hora1.getTime();
long lahora = hora2.getTime();
long diferencia = (lahora - lantes);
System.out.println(new java.text.SimpleDateFormat( "HH:mm:ss" ).format( new Date(diferencia) ))
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar