TDateの++演算子、欠落した日付の列挙

TDateには++演算子が使えることを今さら知った。値を一日ずつ進めてくれる。
比較演算子(<)もあるので、std::setやmapにも格納できる。

Vclアプリケーションでのテストコード。

出力結果:
2018/10/31
2018/11/01

もちろん閏月判定もやってくれる。

出力結果:
2015/02/28
2015/03/01
—————-
2016/02/28
2016/02/29
2016/03/01

前置と後置の評価タイミングも当然異なる。

出力結果:
postfix : equal
prefix : differ

もともと与えられた日付の一覧から、欠落した日付を列挙する方法を調べていて気付いたので、以下、そのサンプル。

出力結果:
2016/02/26
2016/02/28
2016/02/29
2016/03/04
2016/03/05
2016/03/08

なおTDateはTDateTimeのtypedefなので、TDateTimeでも同様に++演算子で1日ずつ値が進む。

出力結果:
2018/11/30 14:35:21
2018/12/01 14:35:21
2018/12/02 14:35:21

Vcl/FireMonkey共通。
C++Bulider10.2.3 / Windows10で確認。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です