0

私は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;
}
4

2 に答える 2

1

整数で期間の日数を表すと仮定すると、次のようになります。

range.length().days()

または、日付を比較する場合は、期間、期間、整数などに変換せずに比較できます。

if (today > electionDay) {
    std::cout << "Election day is in the past\n";
}
于 2012-06-05T17:22:59.087 に答える
0

length()インスタンスを返しdate_durationます。そのメンバー関数の1つを使用して、必要なものを取得できます。例:range.length().days();

于 2012-06-05T17:22:46.913 に答える