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

質問編集履歴

1

文の修正

2020/08/25 11:42

投稿

raki_
raki_

スコア0

title CHANGED
File without changes
body CHANGED
@@ -1,8 +1,7 @@
1
1
  ### 前提・実現したいこと
2
2
 
3
3
  学校の課題で、1秒毎に日時を表示させ30秒間表示し終了と言うプログラムを組んでいるのですが、
4
- どうし1秒毎に時刻を表示出来ず詰まっています。
4
+ if文を使って1秒後の表示する事が出来たのですが、30秒間表示出来ず詰まっています。
5
- 注意事項として、sleep等で時間を止めず計算で日時を表示させたいです。
6
5
 
7
6
  ### 該当のソースコード
8
7
  以下サンプル
@@ -17,25 +16,17 @@
17
16
  int s1 = c1.get(Calendar.SECOND);
18
17
  Calendar c2 = Calendar.getInstance();
19
18
  int s2 = c2.get(Calendar.SECOND);
20
- int s3 = c2.compareTo(c1);
19
+ long s3 = c2.getTimeInMillis() - c1.getTimeInMillis();
21
- while(s2 - s1 < 30){
20
+ while(c2.getTimeInMillis() < c1.getTimeInMillis() + 30000){
22
- s2++;
23
- if(s3 >= 0){
21
+ if(c2.getTimeInMillis() == c2.getTimeInMillis() + 1000){
24
22
  System.out.println(d.format(s2.getTime()));
25
- c2.add(Calendar.SECOND,+1);
26
- }else if(s3 >= 30){
27
- break;
28
- }
29
23
  }
30
24
  }
31
25
  }
32
26
  ```
33
27
 
34
- ### 知りたいこと
35
- while以下の部分の処理でこの書き方だと全て一斉に出てきてしまうので、どうすれば1秒毎に表示させる事が出来るのか教えていただきたいです。
36
28
 
37
29
 
38
-
39
30
  ### 補足情報(FW/ツールのバージョンなど)
40
31
 
41
32
  ツールはjavaを使用しています。