Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package tarea4;
- import java.time.DateTimeException;
- import java.time.LocalDate;
- import java.time.Month;
- import java.util.InputMismatchException;
- import java.util.Scanner;
- import static util.ES.leeCadena;
- public class Ejercicio04 {
- public static void main(String[] args) {
- // Fecha de inicio del curso
- LocalDate fechaInicio = LocalDate.of(2019, Month.SEPTEMBER, 01);
- boolean lecturaOk = false;
- String cadena;
- while (!lecturaOk) {
- try {
- cadena = "";
- do {
- System.out.printf("Introduce 4 o más caracteres: ");
- cadena = leeCadena();
- if (cadena.length() < 4) {
- System.out.printf("Cadena no válida.");
- }
- } while (cadena.length() < 4);
- System.out.println("Introduzca el año : ");
- Scanner teclado = new Scanner(System.in);
- int anio = teclado.nextInt();
- // Lectura del año (debe ser 2019 o bien 2020)
- while (anio < 2019 || anio > 2020) {
- System.out.println("El año debe ser 2019 o 2020.");
- anio = teclado.nextInt();
- }
- // Leer el mes (Lógicamente entre 1 y 12)
- System.out.println("Introduzca el mes (entre 1 y 12).");
- int mes = teclado.nextInt();
- while (mes < 1 || mes > 12) {
- System.out.println("El mes debe estar entre 1 y 12");
- mes = teclado.nextInt();
- }
- // Leer el día
- System.out.println("Introduzca el día (entre 1 y 31).");
- int dia = teclado.nextInt();
- // Fecha leída (Saltará una excepción DateTimeException si por
- // ejemplo se intenta crear una fecha con 31 de febrero)
- LocalDate fechaLeida = LocalDate.of(anio, mes, dia);
- // Si llegamos aquí es que la lectura ha ido bien y no ha saltado ninguna excepción
- lecturaOk = true;
- for (int contador = 0; contador < fechaInicio.length; contador++) {
- if (fechaLeida.isBefore(fechaInicio)) {
- fechaLeida[0] = fechaLeida; //esto cambia la primera posicion
- }
- if (fechaLeida.isAfter(fechaInicio[fechaInicio.lenght])) {
- fechaInicio[fechaLeida.length] - 1 = fechaInicio;
- }
- }
- } catch (DateTimeException ex0) {
- System.err.println("Error: fecha no válida.\n");
- } catch (NumberFormatException ex1) {
- System.err.println("Error: no es un número entero válido. ");
- } catch (InputMismatchException ex2) {
- System.err.println("Error de lectura: formato no válido.");
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement