2016-10-27 37 views
-2

年と年の年齢を計算しています現在の年とdob年が同じであれば数週間で答えるべきですが、コードが機能していない場合は2つの異なる年場合は、あなたのelse声明でカレンダーオブジェクトを使用してJavaで年と年の年齢を計算します

if (dob.get(Calendar.YEAR) != now.get(Calendar.YEAR)) 
{ 
    if (dob.get(Calendar.MONTH) > now.get(Calendar.MONTH)) 
    { 
     age--; 
    } 
    else if (dob.get(Calendar.MONTH) == now.get(Calendar.MONTH)) 
    { 
     if (dob.get(Calendar.DAY_OF_MONTH) > now.get(Calendar.DAY_OF_MONTH)) 
     { 
      age--; 
     } 
     System.out.println(name + "is " + age + " years old"); 
    } 
} 
else if (dob.get(Calendar.MONTH) < now.get(Calendar.MONTH)) 
{ 
    age++; 
} 
else if (dob.get(Calendar.MONTH) == now.get(Calendar.MONTH)) 
{ 
    if (dob.get(Calendar.DAY_OF_MONTH) > now.get(Calendar.DAY_OF_MONTH)) 
    { 
     age++; 
     System.out.println(name + "is " + age + " weeks old"); 
    } 
} 
+5

一貫性のある中括弧 '{}'とインデントで適切にレイアウトすることをお勧めします。すると、ロジックがより簡単になる可能性があります。 – khelwood

答えて

0

は、あなただけの何かを印刷している:

  • は「今」の月は「DOB」と同じである月
  • の「DOB」の日月は、今の「今」日よりも大きいn番目。

@khelwoodが示唆しているように、中括弧{}を追加すると、これがはっきりと分かります。

関連する問題