回答編集履歴
6
24時間ずらす理由を追記
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
コード追記
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
書式修正
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について修正
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について誤認していたので削除
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につて追記
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分前が前日となりだめですね。
|