2013-02-01 19 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

相关问题