Saltar al contenido principal

Boletín 402. Estructuras de datos y fechas en Java

En este boletín trabajaremos con las clases de la API de Java destinadas a trabajar con medidasd e tiempo y estructuras de datos dinámicas.

Ejercicios

Ejercicio 1. Crea un programa en Java que reciba la hora de inicio de un programa de televisión en el formato HH:MM y su duración en minutos e indique la hora de finalización en el formato HH:MM.


Ejercicio 2. Crea un programa en Java que reciba el día de nacimiento de una persona en el formato dd-mm-yyyy e indique:

  • La edad de la persona.
  • El tiempo en días para su aniversario si aún no se ha producido en este año. Si este año ya pasó se indicarán los días que hace que pasó. En caso de que hoy sea el día de su aniversario se indicará por pantalla.
  • El día de la semana de su próximo aniversario, sea en el año actual o en el siguiente. Si hoy está de aniversario mostrará el del año que viene.

Ejercicio 3. Crea un programa en Java utilizando ArrayList para almacenar nombres de personas. Haz un menú con las siguientes operaciones:

  • a) Añadir nombre → Se añadirá el nombre que se introduzca por teclado.
  • b) Mostrar nombres → Se mostrará una lista de nombres.
  • c) Eliminar nombre → Se mostrará un menú con todos los nombres y se seleccionará el que se desea eliminar.
  • z) Salir del programa → Se cerrará el programa.

Ejercicio 4. Realiza un programa utilizando la clase HashMap en la que se almacene una lista de productos y su precio. El nombre del producto será la clave, y su valor el precio. Constará del siguiente menú:

  • a) Añadir producto → Se añadirá un nuevo producto. Si ya existe el producto se avisará al usuario si decide o no actualizar el precio.
  • b) Eliminar producto → Se mostrará un menú para eliminar un producto.
  • c) Mostrar productos con un determinado precio → El usuario añadirá por teclado un precio máximo y un mínimo y se mostrarán los productos con un precio en ese intervalo.
  • z) Salir del programa → Se cerrará el programa.

Nota: cuando se introduce un DNI, hay que comprobar primero que existe. Si no existe, se creará.


Ejercicio 5. Crea un programa que gestione las citas de una consulta médica. Deberás almacenar para cada paciente el día y hora de su cita. Utiliza un ArrayList para los nombres de los pacientes (ArrayList de String) y otro para las citas (ArrayList de LocalDateTime). El programa contará con el siguiente menú:

  • a) Añadir cita → Se añadirá el nombre del paciente y su cita. La cita se introducirá con el siguiente formato HH:mm dd/MM/yyyy. Se comprobará que no existan citas 30 minutos antes o 30 minutos después. Además, no se puede añadir una cita un sábado o domingo. Si ocurriera alguno de estos casos se informará al usuario que no se pudo realizar la cita.
  • b) Eliminar cita → Se mostrarán las citas, indicando el paciente y día y hora en el siguiente formato dd/MM/yyyy HH:mm, en un menú para seleccionar la cita a eliminar.
  • c) Seleccionar fecha → Se introducirá una fecha con el formato dd-MM-yyyy y se mostrarán las citas de ese día. No tienen que mostrarse en orden.

Consideraciones:

  • Introduce al comienzo del programa datos de prueba.
  • No generes nuevas clases. Haz todo en el método main().

Ejercicio 6. Crea un programa en Java para gestionar las horas trabajadas por los empleados. Deberás crear un HashMap donde la clave es el DNI de los empleados y el valor es un ArrayList para almacenar las fichadas (tanto de entrada como de salida) de dicho empleado. El programa contará con el siguiente menú:

  • a) Fichar entrada/salida → El usuario introducirá su DNI y se almacenará la hora actual. Tanto las horas de entrada como de salida se almacenan en una misma lista, por lo tanto el primer elemento de la lista sería la ficha de entrada y el segundo la de salida. Del mismo modo, el tercer elemento sería una ficha de entrada y el cuarto una de salida. El resto de fichadas siguen el mismo mecanismo.
  • b) Comprobar salario → El usuario introducirá su DNI e indicará su salario a percibir. Cada hora trabajada se paga a 12€, aunque este salario se calcula en función de los minutos trabajados. Para realizar el cálculo debes tener en cuenta solo las jornadas terminadas; si, por ejemplo, hay una ficha de entrada sin su salida no se contabilizará.

Consideraciones:

  • Introduce al comienzo del programa datos de prueba.
  • No es necesario comprobar que el DNI sea correcto.
  • No generes nuevas clases. Haz todo en el método main().