2013-02-01 47 views
2

比如我有個約會對象:boost :: gregorian :: date沒有`set-type`函數?

boost::gregorian::date date1(2013,1,31); 

現在我想請一天更改爲1.如何一天設置爲1?

+0

本文檔具有獲得該月的最後幾天的一個例子,我敢肯定,你可以只對其進行調整到start_of_month而不是end_of_month http://www.boost.org/doc/libs/1_42_0/doc/html/date_time/examples.html –

回答

6

日期類型是不可改變的,除了分配,所以你需要一個新的日期:

date1 = boost::gregorian::date(date1.year(), date1.month(), 1); 
+0

最終,我已經完成了您所寫的內容。但爲什麼不提供setter函數? – Narek

+6

@Narek:這將需要驗證每個setter。不可變的類型只需要在構建時進行驗證,使得它們更簡單,而且bug更少,所以有些人更喜歡這種方法。 –

+0

好的解釋!謝謝! :) – Narek

相關問題