回答編集履歴

6

24時間ずらす理由を追記

2020/05/29 00:52

投稿

SHOMI
SHOMI

スコア4079

test CHANGED
@@ -55,3 +55,33 @@
55
55
  String tame6 =format2.format(cal3.getTime());
56
56
 
57
57
  ```
58
+
59
+
60
+
61
+ ---
62
+
63
+ > 現在時刻を24時間前に戻しても、結果としては同じ時刻になるので変わらないのではないのか。と思ってしまいました。
64
+
65
+
66
+
67
+ 時刻だけ指定したとしても年月日(1970年1月1日)が存在していることをわすれていませんか?
68
+
69
+ ```Java
70
+
71
+ SimpleDateFormat format =new SimpleDateFormat("HHmm");
72
+
73
+ Date t = format.parse("1234", new ParsePosition(0));
74
+
75
+ SimpleDateFormat format2 =new SimpleDateFormat("yyyyMMddHHmmss");
76
+
77
+ System.out.println(format2.format(t));
78
+
79
+ ```
80
+
81
+ 結果
82
+
83
+ ```
84
+
85
+ 19700101123400
86
+
87
+ ```

5

コード追記

2020/05/29 00:52

投稿

SHOMI
SHOMI

スコア4079

test CHANGED
@@ -36,4 +36,22 @@
36
36
 
37
37
  - 問題点3
38
38
 
39
- このままのコードだと実施時間を`0000`〜`0029`にした場合は30分前が前日となり、現在時刻`2330`〜`2359`が範囲外と判定されます
39
+ このままのコードだと実施時間を`0000`〜`0029`にした場合は30分前が前日となり、現在時刻`2330`〜`2359`が範囲外と判定されます。
40
+
41
+ 表示は時分だけなので、実施時間が`0000`〜`0029`なら現在時間を24時間前にずらしてやれば動きますね。
42
+
43
+ ```diff
44
+
45
+ cal3.setTime(time4);//現在時間
46
+
47
+ +if(b<30)
48
+
49
+ +{
50
+
51
+ + cal3.add(Calendar.HOUR, -24);
52
+
53
+ +}
54
+
55
+ String tame6 =format2.format(cal3.getTime());
56
+
57
+ ```

4

書式修正

2020/05/28 15:46

投稿

SHOMI
SHOMI

スコア4079

test CHANGED
@@ -34,4 +34,6 @@
34
34
 
35
35
 
36
36
 
37
+ - 問題点3
38
+
37
39
  このままのコードだと実施時間を`0000`〜`0029`にした場合は30分前が前日となり、現在時刻`2330`〜`2359`が範囲外と判定されますね。

3

0000~0029について修正

2020/05/28 15:40

投稿

SHOMI
SHOMI

スコア4079

test CHANGED
@@ -31,3 +31,7 @@
31
31
  +String p = String.format("%04d",o);
32
32
 
33
33
  ```
34
+
35
+
36
+
37
+ このままのコードだと実施時間を`0000`〜`0029`にした場合は30分前が前日となり、現在時刻`2330`〜`2359`が範囲外と判定されますね。

2

0000-0029について誤認していたので削除

2020/05/28 15:38

投稿

SHOMI
SHOMI

スコア4079

test CHANGED
@@ -31,9 +31,3 @@
31
31
  +String p = String.format("%04d",o);
32
32
 
33
33
  ```
34
-
35
-
36
-
37
- ---
38
-
39
- このままのコードだと`0000`〜`0029`は30分前が前日となりだめですね。

1

0000~0029につて追記

2020/05/28 15:34

投稿

SHOMI
SHOMI

スコア4079

test CHANGED
@@ -31,3 +31,9 @@
31
31
  +String p = String.format("%04d",o);
32
32
 
33
33
  ```
34
+
35
+
36
+
37
+ ---
38
+
39
+ このままのコードだと`0000`〜`0029`は30分前が前日となりだめですね。