質問編集履歴
4
修正中コードの追記3
test
CHANGED
File without changes
|
test
CHANGED
@@ -86,9 +86,13 @@
|
|
86
86
|
|
87
87
|
|
88
88
|
|
89
|
-
|
89
|
+
if (args.length != 1) {
|
90
90
|
|
91
|
-
int
|
91
|
+
System.err.println("must have only 1 argument");
|
92
|
+
|
93
|
+
return;
|
94
|
+
|
95
|
+
}
|
92
96
|
|
93
97
|
|
94
98
|
|
@@ -96,21 +100,21 @@
|
|
96
100
|
|
97
101
|
|
98
102
|
|
99
|
-
|
103
|
+
// LocalDateを生成
|
100
|
-
|
101
|
-
|
102
104
|
|
103
105
|
try {
|
104
106
|
|
105
|
-
ar
|
107
|
+
LocalDate localBirdhdate = LocalDate.parse(args[0], formatter);
|
106
108
|
|
107
109
|
}
|
108
110
|
|
109
|
-
catch ( DateTimeParseException
|
111
|
+
catch ( DateTimeParseException e )
|
110
112
|
|
111
113
|
{
|
112
114
|
|
113
115
|
System.err.println("Error");
|
116
|
+
|
117
|
+
System.err.println(e);
|
114
118
|
|
115
119
|
return;
|
116
120
|
|
@@ -130,9 +134,21 @@
|
|
130
134
|
|
131
135
|
|
132
136
|
|
133
|
-
|
137
|
+
if (age >= 0) {
|
134
138
|
|
139
|
+
// 年齢
|
140
|
+
|
135
|
-
System.out.println("年齢: " + age);
|
141
|
+
System.out.println("年齢: " + age);
|
142
|
+
|
143
|
+
} else {
|
144
|
+
|
145
|
+
System.err.println("The date is the future");
|
146
|
+
|
147
|
+
}
|
148
|
+
|
149
|
+
}
|
150
|
+
|
151
|
+
}
|
136
152
|
|
137
153
|
}
|
138
154
|
|
3
修正中コードの追記2
test
CHANGED
File without changes
|
test
CHANGED
@@ -86,25 +86,31 @@
|
|
86
86
|
|
87
87
|
|
88
88
|
|
89
|
+
|
90
|
+
|
91
|
+
int birthdate = args[0];
|
92
|
+
|
93
|
+
|
94
|
+
|
89
95
|
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy/MM/dd");
|
90
96
|
|
91
97
|
|
92
98
|
|
93
|
-
|
99
|
+
LocalDate localBirdhdate = LocalDate.parse(birthdate, formatter);
|
100
|
+
|
101
|
+
|
94
102
|
|
95
103
|
try {
|
96
104
|
|
97
|
-
|
105
|
+
args.length;
|
98
106
|
|
99
107
|
}
|
100
108
|
|
101
|
-
catch ( DateTimeParseException e )
|
109
|
+
catch ( DateTimeParseException ne )
|
102
110
|
|
103
111
|
{
|
104
112
|
|
105
113
|
System.err.println("Error");
|
106
|
-
|
107
|
-
System.err.println(e);
|
108
114
|
|
109
115
|
return;
|
110
116
|
|
@@ -134,4 +140,6 @@
|
|
134
140
|
|
135
141
|
|
136
142
|
|
143
|
+
|
144
|
+
|
137
145
|
```
|
2
修正中コードの追記
test
CHANGED
File without changes
|
test
CHANGED
@@ -65,3 +65,73 @@
|
|
65
65
|
}
|
66
66
|
|
67
67
|
```
|
68
|
+
|
69
|
+
|
70
|
+
|
71
|
+
|
72
|
+
|
73
|
+
```修正中コード
|
74
|
+
|
75
|
+
import java.time.LocalDate;
|
76
|
+
|
77
|
+
import java.time.format.DateTimeFormatter;
|
78
|
+
|
79
|
+
import java.time.temporal.ChronoUnit;
|
80
|
+
|
81
|
+
|
82
|
+
|
83
|
+
public class Age {
|
84
|
+
|
85
|
+
public static void main(String[] args) {
|
86
|
+
|
87
|
+
|
88
|
+
|
89
|
+
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy/MM/dd");
|
90
|
+
|
91
|
+
|
92
|
+
|
93
|
+
// 生年月日を表す文字列から、LocalDateを生成
|
94
|
+
|
95
|
+
try {
|
96
|
+
|
97
|
+
LocalDate localBirdhdate = LocalDate.parse(args.length, formatter);
|
98
|
+
|
99
|
+
}
|
100
|
+
|
101
|
+
catch ( DateTimeParseException e )
|
102
|
+
|
103
|
+
{
|
104
|
+
|
105
|
+
System.err.println("Error");
|
106
|
+
|
107
|
+
System.err.println(e);
|
108
|
+
|
109
|
+
return;
|
110
|
+
|
111
|
+
}
|
112
|
+
|
113
|
+
|
114
|
+
|
115
|
+
// 現在の日付を取得
|
116
|
+
|
117
|
+
LocalDate nowDate = LocalDate.now();
|
118
|
+
|
119
|
+
|
120
|
+
|
121
|
+
// 年齢を計算する
|
122
|
+
|
123
|
+
long age = ChronoUnit.YEARS.between(localBirdhdate, nowDate);
|
124
|
+
|
125
|
+
|
126
|
+
|
127
|
+
// 年齢
|
128
|
+
|
129
|
+
System.out.println("年齢: " + age);
|
130
|
+
|
131
|
+
}
|
132
|
+
|
133
|
+
}
|
134
|
+
|
135
|
+
|
136
|
+
|
137
|
+
```
|
1
引数の扱いの修正
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
[Java]生年月日を渡したら年齢を計算するプログラム
|
1
|
+
[Java]生年月日を渡したら年齢を計算するプログラム
|
test
CHANGED
@@ -1,10 +1,10 @@
|
|
1
|
-
引数として生年月日を渡したらそれを元に年齢を計算するプログラムを作り
|
1
|
+
引数として生年月日を渡したらそれを元に年齢を計算するプログラムを作りです。
|
2
2
|
|
3
|
-
生年月日
|
3
|
+
予め生年月日を記載して年齢を計算することは出来ましたが、ここから生年月日を渡す(args)処理と生年月日が不正な場合のエラーパターンを作成するにはどうすればよいでしょうか。
|
4
4
|
|
5
5
|
生年月日が数値以外の場合、現在の日付より未来の場合など起こりうるあらゆるパターンを作りたいです。
|
6
6
|
|
7
|
-
また、エラーの場合メッセージも出すようにしたいです。
|
7
|
+
また、エラーの場合にはメッセージも出すようにしたいです。
|
8
8
|
|
9
9
|
ご教示いただけますと幸いです。
|
10
10
|
|