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

回答編集履歴

2

追加

2020/09/01 12:03

投稿

amiya
amiya

スコア1218

answer CHANGED
@@ -15,6 +15,24 @@
15
15
  1秒単位に、閾値を用意しておいて、それを超えていたら、表示して、閾値を次の1秒単位に更新。
16
16
  みたいな感じにするといいのではないでしょうか。
17
17
 
18
+ 例えばこんなとか。
19
+ ```JAVA
20
+ import java.text.SimpleDateFormat;
21
+ import java.util.Calendar;
22
+ public class Main{
23
+ public static void main(String[]args){
24
+ SimpleDateFormat d = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
25
+ Calendar c2;
26
+ long s3 = Calendar.getInstance().getTimeInMillis();
27
+ for(int i=0; i<20; i++){
28
+ while((c2 = Calendar.getInstance()).getTimeInMillis() < s3 + i*1000);
29
+ System.out.println(d.format(c2.getTime()));
30
+ }
31
+ }
32
+ }
33
+ ```
34
+
35
+
18
36
  ---
19
37
  ほんとにそんなに早いのかなとおもって、paiza.ioで
20
38
  ```JAVA

1

追加

2020/09/01 12:03

投稿

amiya
amiya

スコア1218

answer CHANGED
@@ -13,4 +13,28 @@
13
13
 
14
14
  ifでたまたま切りのいいタイミングを抜くのではなく、
15
15
  1秒単位に、閾値を用意しておいて、それを超えていたら、表示して、閾値を次の1秒単位に更新。
16
- みたいな感じにするといいのではないでしょうか。
16
+ みたいな感じにするといいのではないでしょうか。
17
+
18
+ ---
19
+ ほんとにそんなに早いのかなとおもって、paiza.ioで
20
+ ```JAVA
21
+ import java.text.SimpleDateFormat;
22
+ import java.util.Calendar;
23
+ public class Main{
24
+ public static void main(String[]args){
25
+ SimpleDateFormat d = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
26
+ Calendar c1 = Calendar.getInstance();
27
+ Calendar c2 = Calendar.getInstance();
28
+ long s3;
29
+ while(c2.getTimeInMillis() < c1.getTimeInMillis() + 3){ // 3ミリ秒実行
30
+ c2 = Calendar.getInstance();
31
+ s3 = c2.getTimeInMillis() - c1.getTimeInMillis();
32
+ System.out.print(s3);
33
+ }
34
+ }
35
+ }
36
+ ```
37
+ とかやってみたら、
38
+ `00000000000000000000001111111111111111111111111111111222222222222222222222223`
39
+ とかの結果になったので、1ミリ秒の間に20回以上もループするのね。
40
+ ループの中の処理を増やすとその分回数は減ります。