• Class / Function / Type

      std::
    • Header file

      <>
    • Other / All

    最終更新日時(UTC):
    が更新

    履歴 編集

    function
    <chrono>

    std::chrono::get_leap_second_info

    namespace std::chrono {
      template <class Duration>
      leap_second_info get_leap_second_info(const utc_time<Duration>& ut);
    }
    

    概要

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

    戻り値

    戻り値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;
    }
    

    出力例

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

    処理系

    関連項目

    参照