Crear un validador de fechas Java

концерт el caso es que tengo que hacer un ejercicio de crear un validador de fechas que tenga la fecha en un formato, ej: 05.12.2001. Tiene que llevar ese formato y апарте te tiene que decir el dia que era ЕКА fecha, además tiene que mostrar la fecha de años bisiestos. Он tirado de varios ejemplos y не я сын validos ya que no puedo utilizar la libreria Simpledateformat, ni Лос массивы ni Лос выгода попытки. Довод "против" Mi problema viene en como crear lo que es el validador de la fecha ese formato en específico y que sea valida.

Править: Pongo el código de lo que intento hacer.

import java.util.Scanner;
public class ComprobadorFechas {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        System.out.println("Introduce la fecha(dd/mm/yyyy):  ");
        validarFecha(sc.next());
    }
    public static boolean validarFecha( String fecha) {

    int dia;
    int mes;
    int anyo;
    dia = Integer.parseInt(fecha.substring(0,2));
    mes = Integer.parseInt(fecha.substring(4,5));
    anyo = Integer.parseInt(fecha.substring(6,fecha.length()));

    if (anyo>=1900 && anyo<=9999)
    {
        switch (mes)
        {
        case 1:
        case 3:
        case 5:
        case 7:
        case 8:
        case 10:
        case 12:
            System.out.println("Estos meses tienen 31 dias");
        break;

        case 4:
        case 6:
        case 9:
        case 11:
            System.out.println("Estos meses tienen 30 dias ");
        break;
        case 2:
             if ((anyo % 4 == 0 && anyo % 100 != 0) || (anyo % 400 == 0)) 
             {
                System.out.println("El año es bisisesto");
                    if (mes>=1 && mes<=28)
                    {
                        System.out.println("Febrero cae bisiesto, tiene de 1 a 28 dias");
                    }
                    else 
                    {
                        System.out.println("Febrero no es bisiesto, tiene de 1 a 29 dias");
                    }
             }
        break;  

        }

    }




    return false;


    }

}

Las 3 чувака que сын танго:

1: El programa tiene un error, el formato de la fecha tiene que ser ej 07.11.2000 y соло Эстар formado de numeros, al poner алгоритм Комо: a1/e3/yyyy я ошибка ООН Сальты de Java, necesito que solo я coja Лос numeros.

2: Otro problema que tengo es el siguiente: довод "против" Tengo que poner la fecha "/" de lo contrario la fecha es incorrecta osea никакой puedo poner устраивается Комо estas: 01.01.01 o 04.01.2000 tiene que estar formado por dd/mm/yyyy y никакой puedo utilizar librerias.

3: El истекшего месяца problema es, море al comprobar que el año es bisiesto ¿Como hago para que cuando febrero никакие bisiesto Лос диаметры valgan de 1 29 лет Лос en el switch bisiestos de 1 al 28?.

Я он intentado explicar todo lo возможный. Lo siento por la confusión del tema.

-3
задан 09.11.2019, 01:37
1 ответ

Не, если то, что ты ищешь, но я попробовал делать один cГіdigo "близко" к тому, что ты просишь из-за ограничений, чтобы ты показал, я использовал один Восходил, но он считается deprecated, которые значат, что он может давать проблемы (и он дает их), или что существует лучшая альтернатива (например SimpleDateFormat). BГЎsicamente просит пользователя и "вынуждает" его писать в формате dd / мм / yyyy.

public static void main(String[] args) throws IOException {
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

    System.out.println("Indicar fecha en este formato ---> dd/mm/yyyy: ");
    String formi = br.readLine();

    Date Changdate=new Date(formi);
    System.out.println(Changdate);

    } else {
        System.out.println("Error, indicar en este formato: 01/01/2001");
    }

В случае, если ты будешь искать что-то еще специфическое средство или комплекс, который это indГ-пронизало в твоем вопросе и образце cГіdigo, который ты пробуешь реализовать.

2
ответ дан 01.12.2019, 14:41

Теги

Похожие вопросы