方法错误,Class不能应用于不同的类型?

时间:2013-04-03 02:25:47

标签: java

我想将main方法中的字符串转换为另一种方法中的整数,但是我收到错误。

`    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

我不明白这个错误。说我需要一个String,因为该方法使用整数(我的数字)我需要返回一个字符串??我该如何解决这个问题?

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

在main方法中传递年份:

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

`