回答編集履歴
5
asdasd
answer
CHANGED
@@ -85,6 +85,4 @@
|
|
85
85
|
}
|
86
86
|
}
|
87
87
|
|
88
|
-
```
|
88
|
+
```
|
89
|
-
|
90
|
-
上2つの例が要件を満たさなかった場合にのみお聞きしますが、課題に「Thread#sleep」を使用してはいけないと書かれていたのでしょうか。
|
4
asdasd
answer
CHANGED
@@ -77,13 +77,14 @@
|
|
77
77
|
long endTime = System.currentTimeMillis() + 30000;
|
78
78
|
long shownTime = 0;
|
79
79
|
|
80
|
-
|
80
|
+
while (endTime > shownTime) {
|
81
|
-
if(System.currentTimeMillis() < shownTime + 1000) continue;
|
81
|
+
if (System.currentTimeMillis() < shownTime + 1000) continue;
|
82
82
|
shownTime = System.currentTimeMillis();
|
83
83
|
System.out.println(formatter.format(new Date(shownTime)));
|
84
|
-
}
|
84
|
+
}
|
85
85
|
}
|
86
86
|
}
|
87
|
+
|
87
88
|
```
|
88
89
|
|
89
90
|
上2つの例が要件を満たさなかった場合にのみお聞きしますが、課題に「Thread#sleep」を使用してはいけないと書かれていたのでしょうか。
|
3
コードの修正
answer
CHANGED
@@ -74,7 +74,7 @@
|
|
74
74
|
|
75
75
|
SimpleDateFormat formatter = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
|
76
76
|
|
77
|
-
long endTime = System.currentTimeMillis() +
|
77
|
+
long endTime = System.currentTimeMillis() + 30000;
|
78
78
|
long shownTime = 0;
|
79
79
|
|
80
80
|
do {
|
2
追加
answer
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
勘違いだったら申し訳ないのですが、
|
1
|
+
勘違いだったら申し訳ないのですが、1秒毎に日時を表示させながら、他の処理を同時に行いたいということでしょうか。それならばjava.lang.Threadクラスを利用することで実現することができます。以下に例を示します。
|
2
2
|
|
3
3
|
```java
|
4
4
|
import java.text.SimpleDateFormat;
|
@@ -62,5 +62,28 @@
|
|
62
62
|
2020/08/19 22:37:01
|
63
63
|
2020/08/19 22:37:02
|
64
64
|
```
|
65
|
+
また、本当はこのようなコードはCPUを消費するためよくないのですが、sleepを使わない例もお見せします。
|
65
66
|
|
67
|
+
```java
|
68
|
+
import java.text.SimpleDateFormat;
|
69
|
+
import java.util.Date;
|
70
|
+
|
71
|
+
public class Main {
|
72
|
+
|
73
|
+
public static void main(String[] args) {
|
74
|
+
|
75
|
+
SimpleDateFormat formatter = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
|
76
|
+
|
77
|
+
long endTime = System.currentTimeMillis() + 300000;
|
78
|
+
long shownTime = 0;
|
79
|
+
|
80
|
+
do {
|
81
|
+
if(System.currentTimeMillis() < shownTime + 1000) continue;
|
82
|
+
shownTime = System.currentTimeMillis();
|
83
|
+
System.out.println(formatter.format(new Date(shownTime)));
|
84
|
+
} while (endTime > shownTime);
|
85
|
+
}
|
86
|
+
}
|
87
|
+
```
|
88
|
+
|
66
|
-
|
89
|
+
上2つの例が要件を満たさなかった場合にのみお聞きしますが、課題に「Thread#sleep」を使用してはいけないと書かれていたのでしょうか。
|
1
gay
answer
CHANGED
@@ -61,4 +61,6 @@
|
|
61
61
|
2020/08/19 22:37:00
|
62
62
|
2020/08/19 22:37:01
|
63
63
|
2020/08/19 22:37:02
|
64
|
-
```
|
64
|
+
```
|
65
|
+
|
66
|
+
この例が要件を満たさなかった場合にのみお聞きしますが、課題に「Thread#sleep」を使用してはいけないと書かれていたのでしょうか。
|