Skip to content

Proyecto

En este proyecto se va a realizar cambios en el proyecto conocido como common.

Para ello se va a añadir los siguientes métodos a la clase ConsoleInput:

  • readDate(): Este método retornará una fecha válida leída por teclado con el formato por defecto.
  • readTime(): Este método retornará una hora válida leída por teclado con el formato por defecto.
  • readDateTime(): Este método retornará una fecha y hora válida leída por teclado con el formato por defecto.

Se sobrescribirán los métodos anteriores para que además reciban un parámetro con el formato con el que se desea leer.

Además, se va a crear la clase Dates en la cuál se llevaran a cabo atributos y métodos de utilidad (estáticos) para trabajar con fechas de la API Java 8.

Se crearán varios atributos con los patrones de fechas siguientes, (teniendo en cuenta que cogerá el idioma por defecto del ordenador)

  • FULL_DATE: Tuesday, 20 June 2023, 12:40:15
  • DATE: Tue, 20 June 2023, 12:40
  • SHORT_DATE: 20 June 2023, 12:40
  • NUMBER_DATE: 20/06/2023, 12:40
  • ONLY_FULL_DATE: Tuesday, 20 June 2023
  • ONLY_DATE: Tue, 20 June 2023
  • ONLY_SHORT_DATE: 20 June 2023
  • ONLY_NUMBER_DATE: 20/06/2023
  • ONLY_TIME: 12:40

Info

Puedes añadir todos los patrones que consideres oportunos si no están en la lista anterior.

Se crearán, también, los siguientes métodos:

  • betweenDay(date1, date2): Calcula la diferencia en días de dos fechas.
  • betweenMonth(date1, date2): Calcula la diferencia en meses de dos fechas.
  • betweenYear(date1, date2): Calcula la diferencia en años de dos fechas.
  • betweenHours(date1, date2): Calcula la diferencia en horas de dos fechas.
  • betweenMinutes(date1, date2): Calcula la diferencia en minutos de dos fechas.
  • betweenSeconds(date1, date2): Calcula la diferencia en segundos de dos fechas.
  • betweenDecades(date1, date2): Calcula la diferencia en décadas de dos fechas.
  • betweenCenturies(date1, date2): Calcula la diferencia en siglos de dos fechas.
  • betweenMillennia(date1, date2): Calcula la diferencia en milenios de dos fechas.
  • between(date1, date2): Calcula el período de tiempo entre dos fechas.
  • format(date): Devuelve una cadena formateada por el formato por defecto.
  • isValidDate(string): Comprueba si la cadena cumple con un formato de fecha.
  • getFirstDate(dayOfWeek, month, year): Devuelve una fecha con el primer un día de la semana, mes y año.
  • getLastDate(dayOfWeek, month, year): Devuelve una fecha con el último día de la semana, mes y año.
  • calendar(month, year): Muestra un calendario de la mes y año indicado.
  • calendar(month, year, date): Muestra un calendario del mes y del año indicado con la fecha señalizada. Si la fecha no coincide con el mes y año indicado, no se señalizará.
  • calendar(year): Muestra un calendario del año especificado.
  • calendar(year, date): Muestra un calendario del año especificado con la fecha señalada. Si la fecha no coincide con el año indicado, no se señalizará.
  • calendar(date): Muestra un calendario del año actual con la fecha señalada. Si la fecha no coincide con el año actual no se señalizará.
  • calendar(): Muestra un calendario del año actual con la fecha de hoy señalada.

Además de todos estos métodos indicados, se añadirá un método a la clase String, toDate(string), que devuelve una fecha dado una cadena.

Para realizar este proyecto se tendrá en cuenta:

  • NO se realizará una versión sobre el proyecto 6, sino que se realizará un copia de dicho proyecto en esta versión
  • Se mantendrá el paquete principal llamado com.NOMBRE.common donde nombre será el nombre del alumno y common el nombre del proyecto.
  • Se deberán sobrescribir los métodos necesarios para que reciban los diferentes tipos de fechas que hay.
  • Se creará una clase Main, donde se ponga en práctica los usos de la librería y se valorará la complejidad de dicho Main.
  • Se deberán respetar el nombre de las funciones.
  • El nombre del resto de funciones será en inglés y deberán ser lo suficiente claras para poder identificarlas con facilidad.
  • El código se comentará haciendo uso de los comentarios JavaDoc además, de comentarios normales para dar una explicación a la parte del código más importante.
  • El repositorio de GitHub tendrá el siguiente nombre pr09java-NOMBRE-dates siendo NOMBRE el nombre del alumno.
  • Se declarará aquellas variables que sean necesarias inicializándolas si es necesario, indicando el tipo correspondiente.
  • Se hará uso de funciones y procedimientos donde sea oportuno.
  • La entrega de este proyecto se realizará a través de un enlace a un repositorio de GitHub, realizando siempre más de un commit.
  • Se valorará la limpieza, la claridad, y la estructura del proyecto.