我需要帮助验证JAVA中的日期是否有效我已经尝试了所有的东西,但它只是在我的代码中没有正常工作

时间:2016-09-23 01:28:13

标签: java

import java.util。*;

公共类DateChecker

以下是我的指示:

编写一个允许用户输入日期的Java应用程序。然后程序将检查日期以验证它是否是有效日期。

首先要求用户在表格中输入日期,mm / dd / yyyy。这将作为字符串输入,因为日期包含斜杠标记。

输入日期后,程序应检查有效日期。如果日期有效,程序应显示消息"有效日期"。如果日期无效,程序应显示消息"不是有效日期"以及表明日期无效的消息。

public static void main(String[] args) {

    Scanner kbd = new Scanner(System.in);
    System.out.println("Enter a date");
    String dateStr = kbd.nextLine();

    if(dateStr.length() == 10){
        if (dateStr.charAt(2) == '/' && dateStr.charAt(5) == '/'){
            String mmStr = dateStr.substring(0, 2);
            String ddStr = dateStr.substring(3, 5);
            String yyyyStr = dateStr.substring(6);

            int mm = Integer.parseInt(mmStr);
            int dd = Integer.parseInt(ddStr);
            int yyyy = Integer.parseInt(yyyyStr);

            if (mm <= 12 && mm >=1){

                if (((((mm == 1) && (dd == 31)) || ((mm == 3) && (dd == 31)) || ((mm == 4) && (dd == 30)) || ((mm == 5) && (dd ==31)) || ((mm == 6) && (dd == 30)) || ((mm == 7) && (dd == 31)) || ((mm == 8) && (dd == 31)) || ((mm == 9) && (dd == 30)) || ((mm == 10) && (dd == 31)) || ((mm == 11) && (dd == 30)) || ((mm == 12) && (dd == 31))))) 
                {
                    System.out.println("Vailid date.");
                }

                else if (mm == 2){
                    if ((yyyy%4==0 && yyyy%100!=0) ||yyyy%400==0)
                    {
                    if (dd == 29){
                        System.out.println("Valid date");
                    }
                    else {
                        System.out.println("Not a valid date \nDay is not valid");
                    }
                    }

                    else {
                        if (dd == 28){
                            System.out.println("Valid date");
                        }
                        else {
                            System.out.println("Not a valid date \nDay is not valid");
                        }
                    }
                }
                else 
                {
                    System.out.println("Not a valid date \nDay is not valid");
                }
            }else {
                System.out.println("Not a valid date \nMonth is not valid");
            }
    }
    else {
        System.out.println("Not a valid date \nIncorrect format");
    }
        if (dateStr.length() > 10){
            System.out.println("Too many characters in the date");
        }else {
            System.out.println("Too few characters in the date ");

        }
    }
}

}

1 个答案:

答案 0 :(得分:0)

您是否必须从头开始实施?如果不是(我希望如此),请看看:

link