我需要帮助找出一个完整的日期,然后验证它是一个真实的日期。
这就是我到目前为止所拥有的。
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,以便循环退出。然而,也没有运气弄清楚这一点。所以基本上我应该放弃这整个事情并重新开始吗?如果是这样,有人可以指出我正确的方向吗?