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

Gestionar y ordenar horas

Estas en el tema de Gestionar y ordenar horas en el foro de Java en Foros del Web. Buenas a todos. Ando a vueltas con un trabajo bastante urgente y que me está dando más quebraderos de cabeza de lo necesario, tengo una ...
  #1 (permalink)  
Antiguo 09/05/2013, 03:30
 
Fecha de Ingreso: agosto-2008
Mensajes: 27
Antigüedad: 15 años, 8 meses
Puntos: 0
Gestionar y ordenar horas

Buenas a todos.

Ando a vueltas con un trabajo bastante urgente y que me está dando más quebraderos de cabeza de lo necesario, tengo una duda y espero alguien pueda ayudarme.

Estoy trabajando en una aplicación (Java y base de datos MySQL) para gestionar clasificaciones de competiciones deportivas. Una de las funciones de la aplicación es registrar el tiempo que tardan los diversos competidores en terminar la prueba (el usuario proporciona el tiempo empleado por teclado) y ofrece una clasificación de los competidores de menor a mayor tiempo empleado.

Para gestionar el tiempo tengo dos posibles soluciones:

1º: Capturar el tiempo indicado por el usuario y, mediante alguna función, convertirla en un número entero y subirlo así a la base de datos. Cuando quiera mostrarlo por pantalla, emplear un DateFormat para darle el formato que me intersa, que sería HH:MM:SS.

2º: En la base de datos, los campos de tiempo usar el tipo TIME de MySQL, que guardaría automáticamente el tiempo proporcionado en el formato que yo quiero. La duda que me surge es qué objeto de Java me permitiría trabajar con más comodidad con las fechas sin perder el formato.

¿Cuál de las dos soluciones debería adoptar? Trabajar con un entero grande es a corto plazo la más sencilla, pero a lo mejor trabajar con horas directamente me ahorra más tiempo y recursos... ¿Qué me recomendáis?
  #2 (permalink)  
Antiguo 09/05/2013, 03:42
Avatar de Fuzzylog  
Fecha de Ingreso: agosto-2008
Ubicación: En internet
Mensajes: 2.511
Antigüedad: 15 años, 8 meses
Puntos: 188
Respuesta: Gestionar y ordenar horas

Hombre con un Date te sirve. Usarías SimpleDateFormat para formatearla como quieres y puedes guardar un long en bd con los milisegundos de la fecha para ordenarla.

tuFecha.getTime() recuperaria los milisegundos de la fecha correspondiente.
y tuFecha.setTime(tuTime) te permitiria recuperar la fecha a partir de los ms de bd (tuTime).
__________________
if (fuzzy && smooth) {
fuzzylog = "c00l";
return true;
}
  #3 (permalink)  
Antiguo 09/05/2013, 04:10
 
Fecha de Ingreso: agosto-2008
Mensajes: 27
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: Gestionar y ordenar horas

Cita:
Iniciado por Fuzzylog Ver Mensaje
Hombre con un Date te sirve. Usarías SimpleDateFormat para formatearla como quieres y puedes guardar un long en bd con los milisegundos de la fecha para ordenarla.

tuFecha.getTime() recuperaria los milisegundos de la fecha correspondiente.
y tuFecha.setTime(tuTime) te permitiria recuperar la fecha a partir de los ms de bd (tuTime).
La aplicación iría más o menos de la siguiente manera, a ver si me he enterado bien de lo que me has explicado [los datos en negrita son los que el operario proporciona al sistema]:
Competidor 1
Competidor 2
Competidor 3

Indique el primer competidor en llegar a la meta: 1

Indique el tiempo empleado en hacer el recorrido: 1:30:20

Indique el competidor en llegar en siguiente puesto: 3

Indique el tiempo empleado en hacer el recorrido: 1:35:00

Indique el competidor en llegar en último puesto: 2

Indique el tiempo empleado en hacer el recorrido: 2:00:00
Tengo planteado guardar la clasificación como un ArrayList de objetos Clasificacion, que contendrían los datos que iría volcando en la base de datos:

String nombreCompetidor
int posicion
Date tiempoEtapa (el tiempo empleado en recorrer una etapa)
Date tiempoCompeticion (el tiempo acumulado de recorrer varias etapas)
long tiempoEtapaMilis
long tiempoCompeticionMilis

Si he entendido bien, a tiempoEtapa y tiempoCompeticion, tras pasarlos por un SimpleDateFormat, les haría un getTime() para obtener los milisegundos (que irían en tiempoEtapaMilis y tiempoCompeticionMilis respectivamente) para tenerlos en la base de datos de esa forma. Luego, para recuperar la fecha, bastaría con descargar un long con el valor de la BBDD y que el setTime() me lo devuelva a su forma original, ¿me equivoco?

Lamento si soy un poco pesado repitiendo de forma extendida lo que me has explicado, pero si no tengo un buen día soy bastante negado. Gracias por tu ayuda ^^
  #4 (permalink)  
Antiguo 09/05/2013, 04:47
Avatar de Fuzzylog  
Fecha de Ingreso: agosto-2008
Ubicación: En internet
Mensajes: 2.511
Antigüedad: 15 años, 8 meses
Puntos: 188
Respuesta: Gestionar y ordenar horas

exactamente.
__________________
if (fuzzy && smooth) {
fuzzylog = "c00l";
return true;
}
  #5 (permalink)  
Antiguo 09/05/2013, 08:06
 
Fecha de Ingreso: agosto-2008
Mensajes: 27
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: Gestionar y ordenar horas

Gracias por echarme una mano, Fuzzylog, lo veo ahora un poco más claro. Te dedicaré una de las cervezas que me tomaré seguro cuando termine ;)

Etiquetas: gestionar, horas
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 06:13.