我現在已經有幾個線程了。這其中尤其是不斷即將在我的搜索:生日計算器格式異常錯誤
https://stackoverflow.com/questions/14219732/how-would-i-subtract-two-dates-mm-dd-yyyy
然而,它只是似乎沒有做我想做什麼,或者它可能只是我很不理解在線程的概念。基本上我只想接受用戶輸入(例如,1980年12月17日),並從當前日期中減去它以獲得人員的實際年齡。我從前面的線程和其他線程讀到的東西似乎很複雜,只是爲了做這個簡單的計算。截至目前程序編譯,但之後我輸入的日期我得到這些錯誤:
Exception in thread "main" java.lang.NumberFormatException: For input string: "12 13 1981"
at java.lang.NumberFormatException.forInputString(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at bdayCalc.Class2.setAge(Class2.java:17)
at bdayCalc.Class1.main(Class1.java:20)
以下是我在我的計劃至今:
package bdayCalc;
import java.util.Date;
import java.util.Scanner;
public class Class1 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
Class2 object2 = new Class2();
System.out.print("What is your name? : ");
String name = input.nextLine();
object2.setName(name);
object2.message();
System.out.println();
System.out.print("Please enter your birthday : ");
String userInput = input.nextLine();
object2.setAge(userInput);
object2.finalMessage();
}
}
package bdayCalc;
import java.util.Calendar;
public class Class2 {
int year = Calendar.DATE;
private String fullName;
public void setName(String name) {
fullName = name;
}
private int bDay;
public void setAge(String userInput) {
bDay = Integer.parseInt(userInput) - year;
}
/*private int year() {
return 0;
}*/
public String getName() {
return fullName;
}
public int getAge() {
return bDay;
}
public void message() {
System.out.printf("Hello %s ", getName());
}
public void finalMessage() {
System.out.printf(getName() + " You were born in " + bDay);
}
}
The'String'' 「12 13 1981」 '由於空白而不是'int'的表示。因此,它會拋出一個'NumberFormatException'。 – Jyr
我正在考慮這樣做,但我只是堅持從當前時間減去輸入的想法。必須有一個簡單的方法來做到這一點。 –
我編了一個例子。請檢查它是否適用於您。 –