ブースト日時

日付を作成するには、クラスブースト::グレゴリオ::日付を使用

1.日付

#include <ブースト/ DATE_TIME /グレゴリオ/ gregorian.hpp> 
の#include <iostreamの> int型のmain()
{ 
  ブースト::グレゴリオ::日付D(2014131) 
  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(2014131) 
  日付D2(2014228) 
  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::weeksboost::gregorian::monthsまたはboost::gregorian::years

3. date_period

書式#include <ブースト/ DATE_TIME /グレゴリオ/ gregorian.hpp> 
の#include <iostreamの> 使用して名前空間ブースト::グレゴリオ。INT メイン()
{ 
  日付D1(201411) 
  日付D2(2014228) 
  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(2014512) 
  グレゴリオ:: 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_iteratorboost::gregorian::month_iteratorおよびboost::gregorian::year_iteratorそれぞれ、数週間、数ヶ月、あるいは数年でジャンプします。

おすすめ

転載: www.cnblogs.com/sssblog/p/11302360.html