2017-04-13 110 views
0

我是新來的Java語言代碼後崩潰(剛開始大約2個星期前)使用格式化

基本上,用戶輸入他們的年/月/日,他們以出生,我用這個信息進行數學計算,以顯示他們的年齡。

我需要0-9的數字作爲01,02,03 ...因此,我搜索了四周,發現我可以使用Decimal.Format,然後打印出格式。

我的代碼崩潰,每當它到達println(twodigits.format)部分沒有mater我放它的地方。沒有顯示我需要解決的錯誤。

它爲什麼這樣做,是否有更好的方法來做到這一點?我需要它始終是2位數字,否則計算將不起作用。

這裏是我的代碼的一部分,我可以提供更多,如果需要。

DecimalFormat twodigits = new DecimalFormat("00"); 
System.out.println("Calculating..."); 

Integer CurrentDate2 = Integer.valueOf(CurrentDate); 
Integer BirthDate2 = Integer.valueOf(BirthDate); 

int a = CurrentDate2.intValue(); 
int b = BirthDate2.intValue(); 
int age = (a - b)/1000; 
Thread.sleep(300); 
System.out.println("."); 
Thread.sleep(300); 
System.out.println("."); 
Thread.sleep(300); 
System.out.println("."); 
System.out.println(twodigits.format(CurrentDate)); 
System.out.println(twodigits.format(BirthDate)); 

任何幫助表示讚賞!

+2

我猜'CurrentDate'和'BirthDate'是'String's? 'DecimalFormat.format()'需要一個數字值。 – shmosel

+0

如果您正在從用戶/鍵盤進行輸入,則可以從掃描儀對象開始。 – Sedrick

+0

「你需要它是兩位數的計算不起作用,」我很困惑? – Sedrick

回答

0

什麼類型的「CurrentDate」和「BirthDate」,因爲它不是從你的代碼清楚?你首先使用它們來設置「CurrentDate2」和「BirthDate2」。然後你在println()中使用它們。

如果我猜測,我會說他們是'String'類型,'twodigits.format()'不能處理字符串,這就是爲什麼它會崩潰。

0

這需要兩個日期和拆分「/」的時間。然後它以您想要的格式打印出來。

DecimalFormat twodigits = new DecimalFormat("00"); 
    System.out.println("Calculating..."); 

    String CurrentDate = "01/02/2007"; 
    String BirthDate = "02/03/2007"; 

    String[] currentDateParts = CurrentDate.split("/"); 
    String[] birthDateParts = BirthDate.split("/"); 

    int cdp0 = Integer.parseInt(currentDateParts[0]); 
    int cdp1 = Integer.parseInt(currentDateParts[1]); 
    int cdp2 = Integer.parseInt(currentDateParts[2]); 


    int bdp0 = Integer.parseInt(birthDateParts[0]); 
    int bdp1 = Integer.parseInt(birthDateParts[1]); 
    int bdp2 = Integer.parseInt(birthDateParts[2]); 

    //do your calculations 

    System.out.println(twodigits.format(cdp0)); 
    System.out.println(twodigits.format(cdp1)); 
    System.out.println(twodigits.format(cdp2)); 
    System.out.println(twodigits.format(bdp0)); 
    System.out.println(twodigits.format(bdp1)); 
    System.out.println(twodigits.format(bdp2));