2017-04-13 9 views
0

をフォーマットし使用した後、私は、Java言語に新たなんだコード(ちょうど約2週間前に始まっ)

をクラッシュ基本的には、ユーザーはそれらを順番に上の生まれたその年/月/日に入り、私はこの情報を使用彼らの年齢を示す数学計算を実行する。

01、02、03として取り込むためには0から9までの数字が必要です。そこで、私はDecimal.Formatを使用して後でそのフォーマットを印刷することができます。

println(twodigits.format)の部分に達したときに私のコードがクラッシュし、配置しません。私が取り組む必要のあるエラーは表示されません。

なぜこれを行うのですか?これを行うにはより良い方法がありますか?常に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

ユーザ/キーボードからの入力を受けている場合は、Scannerオブジェクトから開始することができます。 – Sedrick

+0

"計算がうまくいかない場合は2桁にする必要があります。"私は混乱していますか? – Sedrick

答えて

0

「CurrentDate」と「BirthDate」は、コードから明らかではないため、どのようなタイプがありますか?最初に "CurrentDate2"と "BirthDate2"を設定するために使用します。そして、println()でそれらを使用します。

もし私が推測するならば、彼らは 'String'型であり、 'twodigits.format()'はStringsを扱うことができないので、クラッシュするのです。

0

これは "/"で2つの日付とスプリットタイムをとります。次に、必要な形式でそれらを印刷します。

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)); 
関連する問題