日付の計算には、Boost.Date_Timeライブラリの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 |