Skip to content

Latest commit

 

History

History
76 lines (61 loc) · 2.37 KB

get_leap_second_info.md

File metadata and controls

76 lines (61 loc) · 2.37 KB

get_leap_second_info

  • chrono[meta header]
  • std::chrono[meta namespace]
  • function[meta id-type]
  • cpp20[meta cpp]
namespace std::chrono {
  template <class Duration>
  leap_second_info get_leap_second_info(const utc_time<Duration>& ut);
}
  • leap_second_info[link leap_second_info.md]
  • utc_time[link utc_time.md]

概要

指定した日時までに挿入されたうるう秒の回数を取得する。

戻り値

戻り値型leap_second_infoの各メンバ変数は、以下の値が代入される:

メンバ変数 説明
is_leap_second ut自身がうるう秒であればtrue、そうでなければfalse
elapsed 1970年1月1日からutまでに正のうるう秒が挿入された合計 (秒数)。
合計にはutを含む

#include <iostream>
#include <chrono>

namespace chrono = std::chrono;
using namespace std::chrono_literals;

int main()
{
  std::cout << std::boolalpha;
  // 日本標準時(JST)2017年1月1日にうるう秒挿入が実施され
  //   2016-12-31 23:59:60 UTC
  // が存在する
  chrono::utc_time tp = chrono::clock_cast<chrono::utc_clock>(chrono::sys_days{2017y/1/1}) - 1s;
  chrono::leap_second_info info = chrono::get_leap_second_info(tp);
  std::cout << tp << std::endl;
  std::cout << info.is_leap_second << " " << info.elapsed.count() << std::endl;
}
  • chrono::leap_second_info[link leap_second_info.md]
  • chrono::utc_time[link utc_time.md]
  • chrono::utc_clock[link utc_clock.md]
  • count()[link duration/count.md]
  • 2017y[link year/op_y.md]
  • chrono::sys_days[link sys_time.md]
  • chrono::clock_cast[link clock_cast.md]

出力例

2016-12-31 23:59:60
true 27

処理系

  • Clang: 9.0 [mark noimpl]
  • GCC: 9.2 [mark noimpl], 13.2 [mark impl]
  • Visual C++: 2019 Update 3 [mark noimpl]

関連項目

参照