日付を作成するには、クラスブースト::グレゴリオ::日付を使用
1.日付
#include <ブースト/ DATE_TIME /グレゴリオ/ gregorian.hpp> の#include <iostreamの> int型のmain() { ブースト::グレゴリオ::日付D(2014、1、31) 。 std :: coutの << d.year()<< はstd ::てendl; std :: coutの << d.month()<< はstd ::てendl; std :: coutの << d.day()<< はstd ::てendl; std :: coutの << d.day_of_week()<< はstd ::てendl; std :: coutの << d.end_of_month()<< はstd ::てendl;
date d = day_clock::universal_day();
std::cout << d.year() << std::endl;
std::cout << d.month() << std::endl; std::cout << d.day() << std::endl'; d = date_from_iso_string("20140131"); std::cout << d.year() << std::endl; std::cout << d.month() << std::endl; std::cout << d.day() << std::endl;
リターン 0 ;
}
後押し::グレゴリオ::日付が日付を作成するために、いくつかのコンストラクタを提供します。最も基本的なコンストラクタは、年、月、およびパラメータとして日かかります。
後押し::グレゴリオ::日付は現在の日付を返します。メンバ関数universal_day()は、タイムゾーンと夏時間とは無関係であるUTCの日付を返します。boost::gregorian::day_clock
呼ばれるメンバ関数を提供local_day()
アカウントにローカル設定を取り、。ローカルタイムゾーン内の現在の日付を取得するには、使用しますlocal_day()
。
date_from_iso_stringは、ISO 8601形式の日付に変換します。その他の機能が含まれます:ブースト::グレゴリオ:: from_simple_stringを()とブースト::グレゴリオ:: from_us_string()。
2. date_duration
書式#include <ブースト/ DATE_TIME /グレゴリオ/ gregorian.hpp>
の#include <iostreamの> 使用して名前空間ブースト::グレゴリオ。INT メイン()
{
日付D1(2014、1、31) 。
日付D2(2014、2、28) 。
date_duration DD = D2 - D1。
std :: coutの << dd.days()<< はstd ::てendl;
リターン0 ;
}
date_duration dd{4};
std::cout << dd.days() << std::endl;
weeks ws{4};
std::cout << ws.days() << std::endl;
months ms{4};
std::cout << ms.number_of_months() << std::endl;
years ys{4};
std::cout << ys.number_of_years() << std::endl;
後押し::グレゴリオ::日付のオーバーロードは、2つの時点を減算することができます、operator-。戻り値は、型ブースト::グレゴリオ:: date_durationのものであり、2つの日付の間の期間をマーク。日()指定された期間の日数を返します。
タイプのオブジェクトはboost::gregorian::date_duration
また、コンストラクタへの単一のパラメータとして日数を渡すことで作成することができます。週、月、年、使用を含む期間を作成するにはboost::gregorian::weeks
、boost::gregorian::months
またはboost::gregorian::years
3. date_period
書式#include <ブースト/ DATE_TIME /グレゴリオ/ gregorian.hpp> の#include <iostreamの> 使用して名前空間ブースト::グレゴリオ。INT メイン() { 日付D1(2014、1、1) 。 日付D2(2014、2、28) 。 date_periodのDP {D1、D2}。 date_duration DD = dp.length()。 std :: coutの << dd.days()<< はstd ::てendl; std :: cout.setf(STD ::イオス:: boolalpha)。 std :: coutの << dp.contains(D1)<< はstd ::てendl; std :: coutの << dp.contains(D2)<< std ::てendl; リターン 0 ; }
ブースト::グレゴリオ:: date_periodのコンストラクタは、入力の2種類を受け入れることができます。あなたは型ブースト:: gergorian ::日付、開始日の1日と終了日のための1の2つのパラメータを渡すことができます。終了日の前日には、実際の期間の最後の日であることに注意してください。
投与量D2を含んでいながら、DPは、D1が含まれています。
4.イテレータ
書式#include <ブースト/ DATE_TIME /グレゴリオ/ gregorian.hpp> の#include <iostreamの> 使用して名前空間のブーストを。INT メイン() { グレゴリオ::日付D(2014、5、12) 。 グレゴリオ:: day_iteratorそれ{D}。 std :: coutの << * ++それ<< はstd ::てendl; std :: coutの << DATE_TIME :: next_weekday(* これ、グレゴリオ:: greg_weekday(DATE_TIME ::金曜日)) << はstd ::てendl; 0を返します。 }
イテレータを使用してboost::gregorian::day_iterator
、特定の日からその日によって前方または後方にジャンプします。使用boost::gregorian::week_iterator
、boost::gregorian::month_iterator
およびboost::gregorian::year_iterator
それぞれ、数週間、数ヶ月、あるいは数年でジャンプします。