回答編集履歴
6
24時間ずらす理由を追記
answer
CHANGED
@@ -26,4 +26,19 @@
|
|
26
26
|
+ cal3.add(Calendar.HOUR, -24);
|
27
27
|
+}
|
28
28
|
String tame6 =format2.format(cal3.getTime());
|
29
|
+
```
|
30
|
+
|
31
|
+
---
|
32
|
+
> 現在時刻を24時間前に戻しても、結果としては同じ時刻になるので変わらないのではないのか。と思ってしまいました。
|
33
|
+
|
34
|
+
時刻だけ指定したとしても年月日(1970年1月1日)が存在していることをわすれていませんか?
|
35
|
+
```Java
|
36
|
+
SimpleDateFormat format =new SimpleDateFormat("HHmm");
|
37
|
+
Date t = format.parse("1234", new ParsePosition(0));
|
38
|
+
SimpleDateFormat format2 =new SimpleDateFormat("yyyyMMddHHmmss");
|
39
|
+
System.out.println(format2.format(t));
|
40
|
+
```
|
41
|
+
結果
|
42
|
+
```
|
43
|
+
19700101123400
|
29
44
|
```
|
5
コード追記
answer
CHANGED
@@ -17,4 +17,13 @@
|
|
17
17
|
```
|
18
18
|
|
19
19
|
- 問題点3
|
20
|
-
このままのコードだと実施時間を`0000`〜`0029`にした場合は30分前が前日となり、現在時刻`2330`〜`2359`が範囲外と判定されます
|
20
|
+
このままのコードだと実施時間を`0000`〜`0029`にした場合は30分前が前日となり、現在時刻`2330`〜`2359`が範囲外と判定されます。
|
21
|
+
表示は時分だけなので、実施時間が`0000`〜`0029`なら現在時間を24時間前にずらしてやれば動きますね。
|
22
|
+
```diff
|
23
|
+
cal3.setTime(time4);//現在時間
|
24
|
+
+if(b<30)
|
25
|
+
+{
|
26
|
+
+ cal3.add(Calendar.HOUR, -24);
|
27
|
+
+}
|
28
|
+
String tame6 =format2.format(cal3.getTime());
|
29
|
+
```
|
4
書式修正
answer
CHANGED
@@ -16,4 +16,5 @@
|
|
16
16
|
+String p = String.format("%04d",o);
|
17
17
|
```
|
18
18
|
|
19
|
+
- 問題点3
|
19
20
|
このままのコードだと実施時間を`0000`〜`0029`にした場合は30分前が前日となり、現在時刻`2330`〜`2359`が範囲外と判定されますね。
|
3
0000~0029について修正
answer
CHANGED
@@ -14,4 +14,6 @@
|
|
14
14
|
+String c = String.format("%04d",b);
|
15
15
|
-String p = String.valueOf(o)
|
16
16
|
+String p = String.format("%04d",o);
|
17
|
-
```
|
17
|
+
```
|
18
|
+
|
19
|
+
このままのコードだと実施時間を`0000`〜`0029`にした場合は30分前が前日となり、現在時刻`2330`〜`2359`が範囲外と判定されますね。
|
2
0000-0029について誤認していたので削除
answer
CHANGED
@@ -14,7 +14,4 @@
|
|
14
14
|
+String c = String.format("%04d",b);
|
15
15
|
-String p = String.valueOf(o)
|
16
16
|
+String p = String.format("%04d",o);
|
17
|
-
```
|
17
|
+
```
|
18
|
-
|
19
|
-
---
|
20
|
-
このままのコードだと`0000`〜`0029`は30分前が前日となりだめですね。
|
1
0000~0029につて追記
answer
CHANGED
@@ -14,4 +14,7 @@
|
|
14
14
|
+String c = String.format("%04d",b);
|
15
15
|
-String p = String.valueOf(o)
|
16
16
|
+String p = String.format("%04d",o);
|
17
|
-
```
|
17
|
+
```
|
18
|
+
|
19
|
+
---
|
20
|
+
このままのコードだと`0000`〜`0029`は30分前が前日となりだめですね。
|