una quiz programacion preguntas orientada opcion objetos multiple hacer generador examenes examen encuesta crear como codigo basico java date time

java - quiz - preguntas programacion orientada a objetos



Almacenamiento de información simple de horas/minutos en Java: pregunta sobre la mejor práctica (4)

He estado buscando diferentes métodos para almacenar el tiempo en Java y no puedo encontrar la implementación correcta para mis necesidades.

Quiero almacenar información sobre nuestro programa de cursos, esta información consiste principalmente en una hora de inicio y finalización (inicio: HH: MM final: HH: MM). Ahora usaré estos datos en todo el código para crear las diferentes vistas y lógica detrás de la aplicación.

Por ahora lo he implementado usando la clase GregorianCalendar, que funciona bien, pero en cada entrada de un curso termino usando una fecha predeterminada para todo + tiempo, luego continúo ignorando la fecha por completo en toda la aplicación.

Intento desarrollar mejores hábitos de codificación y me preguntaba cómo resolverías este problema. En nuestros cursos, todos los días se nos da un golpe en la cabeza con las buenas prácticas, el desarrollo de OO y el uso de herramientas integradas y de la biblioteca, pero ¿se aplica esto en tal situación?

debería:

  1. Implementar mi propia clase almacenando horas y minutos con todas las comprobaciones de integridad requeridas, etc.
  2. Quédate con lo que tengo, no es bonito, pero es mejor que reinventar la rueda.
  3. Existe una solución increíblemente limpia y simple que he pasado por alto y que todos conocen.

Ahora, obviamente, no espero una respuesta en blanco y negro aquí, sino más bien una guía sobre cómo abordar estos problemas.

EDITAR:

Soy el póster original. Desde que he registrado una cuenta, no puedo enviar nada porque no estoy vinculado a la publicación.

Después de una cuidadosa consideración, creo que construir mi propia solución para almacenar esta información es el enfoque más fácil e intuitivo, las herramientas que existen son brillantes pero mucho más complejas que la información que realmente necesito y probablemente conducirán a un código más inflado para extraer los elementos. Requiero.


El mejor enfoque puede ser utilizar el tiempo Joda ya que tiene objetos para describir la hora del día y los días sin hora y fecha y hora. En general, Joda time es una biblioteca más agradable, especialmente si quieres algo un poco diferente a las clases integradas.


Hay clase java.sql.Time , que podría servir para este fin, si no estuviera completamente rota. NO usaría Calender, ya que esta es una clase bastante hinchada para cómputo y también contiene una parte de fecha. Me gustaría ver el tiempo joda , que lo más probable tiene lo que necesita.

De lo contrario, iría a mi propia clase. Puede necesitarlo en caso de que no desee almacenar segundos, etc.


Tal vez considere usar solo un int para representar la hora. Este sería un valor entre 0 y 1439 (la cantidad de minutos en el día). Entonces, el mediodía estaría representado como 720 (12 * 60); Las 9:30 a.m. serían 570 (9 * 60 + 30), las 9:30 p.m. serían 1290 (21 * 60 + 30), etc.

Esto podría ser fácilmente envuelto en una clase para extraer / establecer las horas y los minutos (sin embargo, considere la posibilidad de hacer esta clase inmutable).

JodaTime es una excelente biblioteca, pero posiblemente exagerada por lo que estás tratando de hacer aquí.


Probablemente deberías echarle un vistazo a Joda Time . Es mejor que usar solo java.util.Date o escribir su propia implementación de fecha y hora. Otra ventaja de Joda Time es que el objeto creado es inmutable y tiene variedades de API útiles para manipular la fecha y hora o realizar comprobaciones de fecha y hora.