回答編集履歴
2
1引く判定基準が逆でした
test
CHANGED
@@ -22,7 +22,7 @@
|
|
22
22
|
|
23
23
|
2.「誕生日」の「年」を「特定の日」の「年」に設定した日付(例の場合2015/06/01)と
|
24
24
|
|
25
|
-
「特定の日」を比較して,
|
25
|
+
「特定の日」を比較して,後者がよりあとの日付か両者が同日なら1.がそのまま年齢に,
|
26
26
|
|
27
27
|
そうでないなら1.の答え-1が年齢になります.
|
28
28
|
|
@@ -30,7 +30,7 @@
|
|
30
30
|
|
31
31
|
birthday.set(Calendar.YEAR, 2015); //誕生日の年を対象の年にスライド
|
32
32
|
|
33
|
-
if(
|
33
|
+
if(target.get(Calendar.DAY_OF_YEAR) < birthday.get(Calendar.DAY_OF_YEAR))
|
34
34
|
|
35
35
|
age -= 1; //求めた年齢を1引く
|
36
36
|
|
1
Calendar.DAY_OF_YEARについて補足
test
CHANGED
@@ -1,6 +1,8 @@
|
|
1
1
|
基本的には前の方と同じ様に[java.util.Calendar](https://docs.oracle.com/javase/jp/6/api/java/util/Calendar.html)クラスを使います.
|
2
2
|
|
3
3
|
```lang-java
|
4
|
+
|
5
|
+
//数値はこの前の段階で適宜解析などで取得する
|
4
6
|
|
5
7
|
Calendar target = Calendar.getInstance();
|
6
8
|
|
@@ -34,6 +36,12 @@
|
|
34
36
|
|
35
37
|
```
|
36
38
|
|
39
|
+
Calendar.DAY_OF_YEARは「その年の何日目か」を表すフィールド値です.
|
40
|
+
|
41
|
+
Calendar.getメソッドの引数にすると「1月1日」なら「1」が,
|
42
|
+
|
43
|
+
「12月31日」なら「365(平年)」か「366(閏年)」が返ります.
|
44
|
+
|
37
45
|
|
38
46
|
|
39
47
|
Calendarクラスが便利なのは,2.の操作の時に閏年をさほど意識する必要がないという点です.
|