質問するログイン新規登録

回答編集履歴

2

画像を追加しました。

2020/04/06 02:31

投稿

tatsu99
tatsu99

スコア5540

answer CHANGED
@@ -33,4 +33,6 @@
33
33
  if birthday.strftime('%m%d').to_i >= "0402".to_i
34
34
 
35
35
  if birthday.strftime('%m%d').to_i >= "0401".to_i
36
- に変えてください。
36
+ に変えてください。
37
+
38
+ ![実年齢と補正後の年齢](f894ed141f2b6640e058b9315c9d6b8f.png)

1

全面的に書き換えました。

2020/04/06 02:31

投稿

tatsu99
tatsu99

スコア5540

answer CHANGED
@@ -1,8 +1,36 @@
1
1
  age = (Date.today.strftime('%Y%m%d').to_i - birthday.strftime('%Y%m%d').to_i) / 10000
2
2
  の直後に以下の文を挿入してください。
3
3
 
4
+ ```Ruby
5
+ if birthday.strftime('%m%d').to_i >= "0402".to_i
6
+ oso_umare = true
7
+ else
8
+ oso_umare = false
9
+ end
10
+ if today.strftime('%m%d').to_i >= birthday.strftime('%m%d').to_i
11
+ have_birthday = true
12
+ else
13
+ have_birthday = false
14
+ end
4
- if (Date.today.strftime('%m').to_i < 4)
15
+ if today.strftime('%m').to_i >= 4
16
+ if oso_umare == true && have_birthday == true
5
- age = age - 1
17
+ age = age - 1
6
- end
18
+ end
19
+ else
20
+ if oso_umare == true || have_birthday == true
21
+ age = age - 1
22
+ end
23
+ end
24
+ ```
25
+ hoshi-takanoriさんが指摘した通り、1学年は4月2日生まれから翌年の4月1日生まれの児童生徒で構成される前提です。
26
+ 遅生まれは4月2日以降に生まれた生徒です。(oro_umare=true)
27
+ その年の誕生日を迎えた場合、have_birthday = trueとなります。
28
+ 年齢算出時、
29
+ 現在日が4月以降(4月含む)なら、遅生まれで、誕生日を迎えた場合、年齢から1を引きます。
30
+ 現在日が3月以前(3月含む)なら、遅生まれ、又は誕生日を迎えた場合、年齢から1を引きます。
7
31
 
8
- 本日のが4月未満ならageから1を引くようにします。
32
+ もし、1学年は41日生まれから翌年の3月31日生まれの児童生徒で構成される前提にしなら、
33
+ if birthday.strftime('%m%d').to_i >= "0402".to_i
34
+
35
+ if birthday.strftime('%m%d').to_i >= "0401".to_i
36
+ に変えてください。