回答編集履歴
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」を使用してはいけないと書かれていたのでしょうか。
         | 
