Foros del Web » Programación para mayores de 30 ;) » Java »

Como restar time

Estas en el tema de Como restar time en el foro de Java en Foros del Web. Estoy sacando Time de dos jSpinner, Lo que quiero es restar para saber la hora.... Así estoy obteniedo el valor de time de jSpinner. @import ...
  #1 (permalink)  
Antiguo 02/05/2015, 11:59
Avatar de soy_nicanor  
Fecha de Ingreso: mayo-2010
Mensajes: 374
Antigüedad: 14 años, 6 meses
Puntos: 3
Como restar time

Estoy sacando Time de dos jSpinner, Lo que quiero es restar para saber la hora....



Así estoy obteniedo el valor de time de jSpinner.

Código Java:
Ver original
  1. Object value1 = jSpinner1.getValue();
  2. String time1 = new SimpleDateFormat("HH:mm:ss").format(value1);
  3.  
  4. Object value2 = jSpinner2.getValue();
  5. String time2 = new SimpleDateFormat("HH:mm:ss").format(value2);

Lo que quiero es a = jSpinner1-jSpinner2

Como lo desarrollaria
__________________
Muy Feliz

Última edición por soy_nicanor; 02/05/2015 a las 12:34
  #2 (permalink)  
Antiguo 02/05/2015, 13:10
Avatar de soy_nicanor  
Fecha de Ingreso: mayo-2010
Mensajes: 374
Antigüedad: 14 años, 6 meses
Puntos: 3
Respuesta: Como restar time

Código Java:
Ver original
  1. String time3 = new (SimpleDateFormat("HH:mm:ss").format(value1-value2));
  2.         this.jTextField3.setText(""+time3);

Como Lo resto umm???
__________________
Muy Feliz

Última edición por soy_nicanor; 02/05/2015 a las 18:51
  #3 (permalink)  
Antiguo 02/05/2015, 18:51
Avatar de soy_nicanor  
Fecha de Ingreso: mayo-2010
Mensajes: 374
Antigüedad: 14 años, 6 meses
Puntos: 3
Respuesta: Como restar time

No me resta.

Código Java:
Ver original
  1. try {
  2.             Date fechaInicio=new SimpleDateFormat("HH:mm:ss").parse(time1);
  3.             Date fechaFin=new SimpleDateFormat("HH:mm:ss").parse(time2);
  4.            
  5.             long tiempoInicial=fechaInicio.getTime();
  6.             long tiempoFinal=fechaFin.getTime();
  7.             long resta=tiempoFinal - tiempoInicial;
  8.             //el metodo getTime te devuelve en mili segundos para saberlo en mins debes hacer
  9.             //            resta=((resta/3600000) * 3600000); ///(1000*60);
  10.             String ress = new SimpleDateFormat("HH:mm:ss").format(resta);
  11.             this.jTextField3.setText(ress);
  12.         } catch (ParseException ex) {
  13.             Logger.getLogger(Borrar1.class.getName()).log(Level.SEVERE, null, ex);
  14.         }
__________________
Muy Feliz
  #4 (permalink)  
Antiguo 03/05/2015, 01:28
(Desactivado)
 
Fecha de Ingreso: marzo-2012
Mensajes: 366
Antigüedad: 12 años, 8 meses
Puntos: 31
Respuesta: Como restar time

//Creo las dos instancias de fecha
GregorianCalendar gc = new GregorianCalendar(2000, 11, 20);
GregorianCalendar gc1 = new GregorianCalendar(2000, 11, 25);
//Obtengo los objetos Date para cada una de ellas
Date fec1 = gc.getTime();
Date fec2 = gc1.getTime();
//Realizo la operación
long time = fec2.getTime() - fec1.getTime();
//Muestro el resultado en días
System.out.println(time/(3600*24*1000));

Ahora un par de consideraciones:
•El método getTime() retorna un long que simboliza la cantidad de milisegundos transcurridos desde el 01/01/1970.
•El resultado de restar los dos long da como resultado (nuevamente) cantidad de milisegundos.
•La fórmula time/(3600*24*1000) sirve para pasar los milisegundos a días.

En tu código introduce un System.out.println después de cada instrucción, así sabrás donde obtienes un resultado deseado y donde no.

long tiempoInicial=fechaInicio.getTime();
System.out.println(tiempoInicial);
long tiempoFinal=fechaFin.getTime();
System.out.println(tiempoFinal);
etc...

Ya los quitarás cuando tengas tu código funcionando y haciendo lo que quieres.

Última edición por Kritik; 03/05/2015 a las 01:37
  #5 (permalink)  
Antiguo 04/05/2015, 01:06
Avatar de Profesor_Falken  
Fecha de Ingreso: agosto-2014
Ubicación: Mountain View
Mensajes: 1.323
Antigüedad: 10 años, 3 meses
Puntos: 182
Respuesta: Como restar time

Cita:
No me resta.
Tienes que convertir los milisegundos a horas, minutos y segundos. Por tanto:

Código Java:
Ver original
  1. this.jTextField3.setText(String.format("%02d:%02d:%02d", TimeUnit.MILLISECONDS.toHours(resta),
  2.     TimeUnit.MILLISECONDS.toMinutes(resta) % TimeUnit.HOURS.toMinutes(1),
  3.     TimeUnit.MILLISECONDS.toSeconds(resta) % TimeUnit.MINUTES.toSeconds(1)));
Esto deberia funcionar.

Un saludo
__________________
If to err is human, then programmers are the most human of us

Etiquetas: jsp, restar, string, time, valor
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:07.