回答編集履歴

3

コード微修正

2018/11/15 19:29

投稿

set0gut1
set0gut1

スコア2413

test CHANGED
@@ -16,7 +16,7 @@
16
16
 
17
17
  void asdf (time_t x) {
18
18
 
19
- time_t foo = 946728000 + x;
19
+ time_t foo = 946728000l + x;
20
20
 
21
21
  tm *bar = gmtime(&foo);
22
22
 
@@ -34,13 +34,13 @@
34
34
 
35
35
  {
36
36
 
37
- asdf(100); // 2000-01-01 12:01:40 GMT
37
+ asdf(100l); // 2000-01-01 12:01:40 GMT
38
38
 
39
- asdf(1000); // 2000-01-01 12:16:40 GMT
39
+ asdf(1000l); // 2000-01-01 12:16:40 GMT
40
40
 
41
- asdf(10000); // 2000-01-01 14:46:40 GMT
41
+ asdf(10000l); // 2000-01-01 14:46:40 GMT
42
42
 
43
- asdf(100000); // 2000-01-02 15:46:40 GMT
43
+ asdf(100000l); // 2000-01-02 15:46:40 GMT
44
44
 
45
45
  }
46
46
 

2

c++用に推敲

2018/11/15 19:28

投稿

set0gut1
set0gut1

スコア2413

test CHANGED
@@ -1,4 +1,6 @@
1
1
  1970年 1月 1日 木曜日 09時00分00秒 JST からの経過秒数で時刻を表現する UNIX time ってのがすでにあるので、それにオフセット足す感じでどうでしょうか。
2
+
3
+ C++ だとこんな感じで。
2
4
 
3
5
 
4
6
 

1

c++用に推敲

2018/11/15 19:24

投稿

set0gut1
set0gut1

スコア2413

test CHANGED
@@ -1,15 +1,45 @@
1
1
  1970年 1月 1日 木曜日 09時00分00秒 JST からの経過秒数で時刻を表現する UNIX time ってのがすでにあるので、それにオフセット足す感じでどうでしょうか。
2
-
3
- 例えばシェルだとこんな感じで。
4
2
 
5
3
 
6
4
 
7
5
  ```
8
6
 
9
- $ x=100
7
+ #include <iostream>
10
8
 
11
- $ date -r `expr 946695600 + $x`
12
9
 
10
+
11
+ using namespace std;
12
+
13
+
14
+
15
+ void asdf (time_t x) {
16
+
13
- 2000年 1月 1日 土曜日 1201分40 JST
17
+ time_t foo = 946728000 + x;
18
+
19
+ tm *bar = gmtime(&foo);
20
+
21
+ char buf[80];
22
+
23
+ strftime(buf, sizeof(buf), "%Y-%m-%d %H:%M:%S GMT", bar);
24
+
25
+ cout << buf << endl;
26
+
27
+ }
28
+
29
+
30
+
31
+ int main ()
32
+
33
+ {
34
+
35
+ asdf(100); // 2000-01-01 12:01:40 GMT
36
+
37
+ asdf(1000); // 2000-01-01 12:16:40 GMT
38
+
39
+ asdf(10000); // 2000-01-01 14:46:40 GMT
40
+
41
+ asdf(100000); // 2000-01-02 15:46:40 GMT
42
+
43
+ }
14
44
 
15
45
  ```