回答編集履歴

2

1引く判定基準が逆でした

2015/03/08 15:27

投稿

swordone
swordone

スコア20651

test CHANGED
@@ -22,7 +22,7 @@
22
22
 
23
23
  2.「誕生日」の「年」を「特定の日」の「年」に設定した日付(例の場合2015/06/01)と
24
24
 
25
- 「特定の日」を比較して,者が未来か両者が同日なら1.がそのまま年齢に,
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(birthday.get(Calendar.DAY_OF_YEAR) < target.get(Calendar.DAY_OF_YEAR))
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について補足

2015/03/08 15:27

投稿

swordone
swordone

スコア20651

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.の操作の時に閏年をさほど意識する必要がないという点です.