我正在使用boost
个库,只能使用int
:
但我收到错误:
cannot convert »boost::gregorian::date_duration« to »int
我该怎么办?请帮忙,我只想检查我的日期是否超过当前日期..
我得到了正确的答案,但无法合作。 (range.length()
)
#include <iostream>
#include <boost/date_time/gregorian/gregorian.hpp>
#include <ctime>
#include <fstream>
namespace bdt = boost::gregorian;
using namespace std;
int main(void)
{
time_t now = time(0);
tm *ltm = localtime(&now);
//Aktuelles Datum
int y = 1900 + ltm->tm_year;
int d = ltm->tm_mday;
int m = 1 + ltm->tm_mon;
bdt::date today(bdt::date(y, m, d));
//Ziel y m d
bdt::date electionDay(bdt::date(2012, 6, 6));
bdt::date_period range(today, electionDay);
std::cout << range.length() << std::endl;
int z = range.length() ;
return 0;
}
答案 0 :(得分:1)
假设您希望整数表示该时段中的天数,则:
range.length().days()
或者,如果您想比较日期,您可以在不转换为句点,持续时间,整数或其他任何内容的情况下执行此操作:
if (today > electionDay) {
std::cout << "Election day is in the past\n";
}
答案 1 :(得分:0)
length()
返回date_duration
个实例。您可以使用其中一个成员函数来获得所需内容。例如,range.length().days()
;