0

我需要帮助找出一个完整的日期,然后验证它是一个真实的日期。

这就是我到目前为止所拥有的。

import java.util.Scanner;

public class numerology
{
     public static void main( String args[])
        {
            Scanner input = new Scanner(System.in);

            int month = 0;
            int date = 0;
            int year = 0;

            char slash = '/';

            int checker = 0; //a flag used to tell if the birthday enter is a validate one 0 = no 1 = yes

            System.out.println ("Enter birthday(mm/dd/yyyy): ");                                
                month = input.nextInt();
                slash = input.next().charAt(0);
                date = input.nextInt();                            
                slash = input.next().charAt(0);                                                 
                year = input.nextInt();

      while (checker == 0)
            {
                if ( month < 1 || month > 12)
                {
                    System.out.printf("Bad month: %d\n", month);
                    System.out.print("Re-enter birthday(mm/dd/yyyy): \n");                       
                       month = input.nextInt();
                       slash = input.next().charAt(0);
                       date = input.nextInt();
                       slash = input.next().charAt(0);
                       year = input.nextInt();

                }
                else
                if ( slash != '/')
                {
                    System.out.print ("Use forward slash");
                    System.out.print ("Re-enter birthday(mm/dd/yyyy): ");
                    month = input.nextInt();
                    slash = input.next().charAt(0);                   
                    date = input.nextInt();                                                
                    slash = input.next().charAt(0);
                    year = input.nextInt();

我得到了更多检查日期和年份的代码,但我现在的代码遇到了问题。

我目前的问题是检查“/”不起作用。

此外,当我运行此循环时,无法退出它(这是一个无限循环)。这显然是一个我在一个多星期的时间里仍然无法解决的问题。我一直在尝试找到一种方法来使用 Int“检查器”以某种方式变为 1,以便循环退出。然而,也没有运气弄清楚这一点。所以基本上我应该放弃这整个事情并重新开始吗?如果是这样,有人可以指出我正确的方向吗?

4

1 回答 1

0

您应该checker = 1在循环内设置某个位置,以便 while 循环中的条件变为 false 并且代码将退出

于 2012-10-19T01:43:49.597 回答