Skip to content

Commit b342e52

Browse files
committed
zoned_time のコード例を修正
コンパイルエラーや assert のエラーを修正しました。 CTAD できていない箇所があったので、テンプレート引数を加えました。 日本時間は UTC+9 ですが、 -9 となっていたので修正しました。 local_time はローカル時間、つまり日本ではAsia/Tokyoタイムゾーンの時間なので、それに合わせて修正しました。
1 parent 0157304 commit b342e52

File tree

7 files changed

+34
-28
lines changed

7 files changed

+34
-28
lines changed

reference/chrono/zoned_time/get_local_time.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -38,23 +38,23 @@ int main()
3838
{
3939
auto now = chrono::system_clock::now();
4040
chrono::local_time local_now{now.time_since_epoch()};
41-
chrono::local_time local_jst_now = now - chrono::hours{9};
41+
chrono::local_time local_jst_now = local_now + chrono::hours{9};
4242
4343
// UTCタイムゾーンのシステム時間から、Asia/Tokyoタイムゾーンのローカル時間に変換する
4444
chrono::zoned_time zt1{"Asia/Tokyo", now};
4545
chrono::local_time lt1 = zt1.get_local_time();
4646
assert(lt1 == local_jst_now);
4747
48-
// UTCタイムゾーンのローカル時間から、Asia/Tokyoタイムゾーンのローカル時間に変換する
49-
chrono::zoned_time zt2{"Asia/Tokyo", local_now};
48+
// Asia/Tokyoタイムゾーンのローカル時間から、Asia/Tokyoタイムゾーンのローカル時間に変換する
49+
chrono::zoned_time zt2{"Asia/Tokyo", local_jst_now};
5050
chrono::local_time lt2 = zt2.get_local_time();
5151
assert(lt2 == local_jst_now);
5252
5353
std::cout << "system now (UTC) : " << now << std::endl;
5454
std::cout << "local now (UTC) : " << local_now << std::endl;
5555
std::cout << "local now (JST) : " << local_jst_now << std::endl;
5656
std::cout << "local now (JST) converted from system now (UTC) : " << lt1 << std::endl;
57-
std::cout << "local now (JST) converted from local now (UTC) : " << lt2 << std::endl;
57+
std::cout << "local now (JST) converted from local now (JST) : " << lt2 << std::endl;
5858
}
5959
```
6060
* get_local_time()[color ff0000]
@@ -69,7 +69,7 @@ system now (UTC) : 2020-01-21 05:10:15
6969
local now (UTC) : 2020-01-21 05:10:15
7070
local now (JST) : 2020-01-21 14:10:15
7171
local now (JST) converted from system now (UTC) : 2020-01-21 14:10:15
72-
local now (JST) converted from local now (UTC) : 2020-01-21 14:10:15
72+
local now (JST) converted from local now (JST) : 2020-01-21 14:10:15
7373
```
7474

7575
## バージョン

reference/chrono/zoned_time/get_time_zone.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ int main()
2929
auto now = chrono::system_clock::now();
3030

3131
chrono::zoned_time zt1{"Asia/Tokyo", now};
32-
chrono::time_zone* tz = zt1.get_time_zone();
32+
const chrono::time_zone* tz = zt1.get_time_zone();
3333
assert(tz == chrono::locate_zone("Asia/Tokyo"));
3434

3535
chrono::zoned_time zt2{"UTC", now};

reference/chrono/zoned_time/op_assign.md

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -47,16 +47,17 @@ int main()
4747
{
4848
auto now = chrono::system_clock::now();
4949
chrono::local_time local_now{now.time_since_epoch()};
50+
chrono::local_time local_jst_now = local_now + chrono::hours{9};
5051

51-
chrono::zoned_time zt1{"Asia/Tokyo"};
52+
chrono::zoned_time<decltype(now)::duration> zt1{"Asia/Tokyo"};
5253
zt1 = now;
5354
assert(zt1.get_sys_time() == now);
54-
assert(zt1.get_local_time() == local_now);
55+
assert(zt1.get_local_time() == local_jst_now);
5556

56-
chrono::zoned_time zt2{"Asia/Tokyo"};
57-
zt2 = local_now;
58-
assert(zt2.get_local_time() == local_now);
59-
assert(zt2.get_sys_time() == sys_now);
57+
chrono::zoned_time<decltype(now)::duration> zt2{"Asia/Tokyo"};
58+
zt2 = local_jst_now;
59+
assert(zt2.get_local_time() == local_jst_now);
60+
assert(zt2.get_sys_time() == now);
6061
}
6162
```
6263
* chrono::system_clock[link /reference/chrono/system_clock.md]

reference/chrono/zoned_time/op_constructor.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -127,11 +127,11 @@ int main()
127127
auto now = chrono::system_clock::now();
128128
auto now_sec = chrono::floor<chrono::seconds>(now);
129129
chrono::local_time local_now{now.time_since_epoch()};
130-
chrono::local_time local_jst_now = local_now - chrono::hours{9};
130+
chrono::local_time local_jst_now = local_now + chrono::hours{9};
131131
132132
// デフォルト構築
133133
chrono::zoned_time<chrono::seconds> zt1{};
134-
assert(zt.get_time_zone() == chrono::locate_zone("UTC"));
134+
assert(zt1.get_time_zone() == chrono::locate_zone("UTC"));
135135
136136
// コピー構築
137137
chrono::zoned_time zt2 = zt1;

reference/chrono/zoned_time/op_deduction_guide.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -117,11 +117,11 @@ int main()
117117
118118
static_assert(std::is_same_v<
119119
decltype(z4),
120-
chrono::zoned_time<decltype(now)::duration, chrono::time_zone*>
120+
chrono::zoned_time<decltype(now)::duration, const chrono::time_zone*>
121121
>);
122122
static_assert(std::is_same_v<
123123
decltype(z5),
124-
chrono::zoned_time<decltype(now)::duration, chrono::time_zone*>
124+
chrono::zoned_time<decltype(now)::duration, const chrono::time_zone*>
125125
>);
126126
}
127127
```

reference/chrono/zoned_time/op_local_time.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -36,23 +36,23 @@ int main()
3636
{
3737
auto now = chrono::system_clock::now();
3838
chrono::local_time local_now{now.time_since_epoch()};
39-
chrono::local_time local_jst_now = now - chrono::hours{9};
39+
chrono::local_time local_jst_now = local_now + chrono::hours{9};
4040

4141
// UTCタイムゾーンのシステム時間から、Asia/Tokyoタイムゾーンのローカル時間に変換する
4242
chrono::zoned_time zt1{"Asia/Tokyo", now};
43-
chrono::local_time lt1{zt1};
43+
chrono::local_time<decltype(now)::duration> lt1{zt1};
4444
assert(lt1 == local_jst_now);
4545

46-
// UTCタイムゾーンのローカル時間から、Asia/Tokyoタイムゾーンのローカル時間に変換する
47-
chrono::zoned_time zt2{"Asia/Tokyo", local_now};
48-
chrono::local_time lt2{zt2};
46+
// Asia/Tokyoタイムゾーンのローカル時間から、Asia/Tokyoタイムゾーンのローカル時間に変換する
47+
chrono::zoned_time zt2{"Asia/Tokyo", local_jst_now};
48+
chrono::local_time<decltype(now)::duration> lt2{zt2};
4949
assert(lt2 == local_jst_now);
5050

5151
std::cout << "system now (UTC) : " << now << std::endl;
5252
std::cout << "local now (UTC) : " << local_now << std::endl;
5353
std::cout << "local now (JST) : " << local_jst_now << std::endl;
5454
std::cout << "local now (JST) converted from system now (UTC) : " << lt1 << std::endl;
55-
std::cout << "local now (JST) converted from local now (UTC) : " << lt2 << std::endl;
55+
std::cout << "local now (JST) converted from local now (JST) : " << lt2 << std::endl;
5656
}
5757
```
5858
* chrono::local_time[link /reference/chrono/local_time.md]
@@ -66,7 +66,7 @@ system now (UTC) : 2020-01-21 05:10:15
6666
local now (UTC) : 2020-01-21 05:10:15
6767
local now (JST) : 2020-01-21 14:10:15
6868
local now (JST) converted from system now (UTC) : 2020-01-21 14:10:15
69-
local now (JST) converted from local now (UTC) : 2020-01-21 14:10:15
69+
local now (JST) converted from local now (JST) : 2020-01-21 14:10:15
7070
```
7171
7272
## バージョン

reference/chrono/zoned_time/op_sys_time.md

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -33,17 +33,22 @@ int main()
3333
{
3434
auto now = chrono::system_clock::now();
3535
chrono::local_time local_now{now.time_since_epoch()};
36+
chrono::local_time local_jst_now = local_now + chrono::hours{9};
3637

3738
chrono::zoned_time zt1{"Asia/Tokyo", now};
38-
assert(zt1 == now);
39+
assert(zt1.get_sys_time() == now);
3940

40-
chrono::sys_time sys_now = zt1;
41-
assert(sys_now == now);
41+
chrono::sys_time<decltype(now)::duration> sys_now1 = zt1;
42+
assert(sys_now1 == now);
4243

43-
chrono::zoned_time zt2{"Asia/Tokyo", local_now};
44-
assert(zt2 == now);
44+
chrono::zoned_time zt2{"Asia/Tokyo", local_jst_now};
45+
assert(zt2.get_sys_time() == now);
46+
47+
chrono::sys_time<decltype(now)::duration> sys_now2 = zt2;
48+
assert(sys_now2 == now);
4549
}
4650
```
51+
* get_sys_time()[link get_sys_time.md]
4752
* chrono::local_time[link /reference/chrono/local_time.md]
4853
* time_since_epoch()[link /reference/chrono/time_point/time_since_epoch.md]
4954
* chrono::system_clock[link /reference/chrono/system_clock.md]

0 commit comments

Comments
 (0)