【问题标题】:On QuantLib's date class and C++11/boost Chrno关于 QuantLib 日期类和 C++11/boost Chrono
【发布时间】:2013-09-06 02:59:55
【问题描述】:

有没有一种方便的编程方式将C++11Boost's Chorno 转换为Quantlib's 日期类格式?

【问题讨论】:

    标签: c++ boost c++11 chrono quantlib


    【解决方案1】:

    我对 Quantlib 的日期类格式几乎一无所知。然而,快速搜索表明它使用 1899-12-30 作为它的第 0 天,它的纪元。

    虽然 C++11 没有指定,但我所知道的 std::chrono::system_clock::time_point 的每个实现都使用 1970-01-01 作为第 0 天纪元。而这两个时期之间正好有 25,569 天。

    这篇论文:

    chrono-Compatible Low-Level Date Algorithms

    包含用于将年/月/日三元组与 1970 年 1 月 1 日之前和之后的天数相互转换的算法。使用这些算法,我相信您可以将纪元移动 25,569 天,以便转换一个纪元与另一个纪元之间的天数,然后提供您正在寻找的转换。但这是您自己动手做的解决方案,而不是预先打包好的解决方案。

    【讨论】:

    • 顺便说一句,这是天才
    • Excel 和 COM 的变体日期的第 0 天是 1899-12-30。必须修改 1899-12-31 的原始第 0 天,因为 Microsoft 代码使用 1900 作为闰年(哎呀!)。所以 Excel/COM 日期是 QuantLib 日期加 1。
    • 谢谢,我已经相应地更新了数字。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-18
    • 2014-01-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多