最終更新日時:
が更新

履歴 編集

日付の計算

日付の計算には、Boost.DateTimeライブラリのGregorianを使用する。

インデックス

月末日の取得

月末日を取得するには、boost::gregorian::gregorian_calendar::end_of_month_day()関数を使用する。

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

int main()
{
    using namespace boost::gregorian;

    const int day = gregorian_calendar::end_of_month_day(2011, 2);
    std::cout << day << std::endl;
}

実行結果:

28

日付の加減算

Boost.DateTimeのboost::gregorian::date型は、operator+()operator-()を使用して、日付の加減算を行うことができる。

年の加減算にはyears型、月の加減算にはmonths型、日付の加減算にはdays型を使用する。

以下の例では、2011年4月1日に1ヶ月を加算し、その後1日を減算することで、2011年4月の末日を求めている。

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

using namespace boost::gregorian;

int main()
{
    const date d1(2011, Apr, 1);
    const date d2 = d1 + months(1) - days(1);

    std::cout << to_simple_string(d2) << std::endl;
}

実行結果:

2011-Apr-30

月を表すenum値

Boost.Dateの月を表すenum値は、boost::date_time名前空間において、以下のように定義されている:

enum
Jan 1
Feb 2
Mar 3
Apr 4
May 5
Jun 6
Jul 7
Aug 8
Sep 9
Oct 10
Nov 11
Dec 12