0

我想在另一种方法中将字符串从主方法转换为整数,但出现错误。

`    public static void main(String[] args) 
 {

      System.out.println("Enter a date (use the format -> (MM/DD/YYYY)");

      //declare Scanner
      Scanner in = new Scanner (System.in);

      System.out.println("Enter a month (MM): ");
      String month = in.nextLine();

      System.out.println("Enter a day (DD): ");
      String day = in.nextLine();

      System.out.println("Enter a year (YYYY): ");
      String year = in.nextLine();

    String enteredDate = month + "/" + day + "/" + year;

    if (main.isValidDate(enteredDate))
      {
        main.leapYearCheck();
    }
}

private boolean isValidDate(String enteredDate) 
 {
    //logic
    parsedDate = null;// if it's valid set the parsed Calendar object up.
    return true;
}

// other code

private void leapYearCheck(String year) 
 {
        //leapyear
        int theYear = Integer.parseInt(year);

        if (theYear < 100) 
        {
            if (theYear > 40) 
            {
                theYear = theYear + 1900;
            }
            else 
            {               
                theYear = theYear + 2000;
            }
        }

        if (theYear % 4 == 0) 
        {
            if (theYear % 100 != 0) 
            {
                System.out.println(theYear + " is a leap year.");
            }
            else if (theYear % 400 == 0) 
            {
                System.out.println(theYear + " is a leap year.");
            }
            else 
            {
                System.out.println(theYear + " is not a leap year.");
            }
        }
        else 
        {
            System.out.println(theYear + " is not a leap year.");
        }
}//end of leap year

//other code }`

我得到错误: Date.java:31: error: method leapYearCheck in class Date cannot be applied to given types; main.leapYearCheck(); ^ required: String found: no arguments reason: actual and formal argument lists differ in length 1 error

我不明白这个错误。说我需要一个字符串,并且由于该方法使用整数(我想)我需要返回一个字符串?我将如何解决这个问题?

4

2 回答 2

1

您需要根据leapYearCheck定义将字符串中的年份传递给方法。

于 2013-04-03T02:30:45.630 回答
1

在主要方法中传递年份为:

if (main.isValidDate(enteredDate)) {
    main.leapYearCheck(year);
}

`

于 2013-04-03T02:33:36.603 回答