gpt4 book ai didi

c++ - 将 boost::gregorian::date_duration 转换为 double

转载 作者:行者123 更新时间:2023-11-30 03:05:58 25 4
gpt4 key购买 nike

有没有办法将 boost::date_duration 转换为 double。我有以下代码:

date be; 
date bd;
days t = (be - bd);
std::cout << "days are:" << t << std::endl;

这工作正常并返回编号。天。但是我想得到年的值,所以如果我将 t 除以 365,它只会显示 0。setprecision() 也没有帮助。

最佳答案

您可能被 boost::gregorian::days 重载 operator/ 这一事实所困扰。首先使用 days() 转换为整数,然后除以浮点值以获得浮点除法。

#include <iostream>
#include <boost/date_time.hpp>

int main()
{
boost::gregorian::date be(2000, 1, 1), bd(1950, 1, 1);
boost::gregorian::days t = be - bd;
std::cout << "days are: " << t << '\n'
<< "days/365 = " << t.days()/365.0 << '\n';
}

注意输出:您的结果不等于年数,因为一年不是 365.00 天。

关于c++ - 将 boost::gregorian::date_duration 转换为 double,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7235400/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com