Split-Funktion für date_period von boost
-
Hallo,
Habe date_period in http://www.boost.org/doc/libs/1_58_0/doc/html/date_time/gregorian.html#date_time.gregorian.date_period.
Die Bibliothek bietet keine Split-Funktion an, um ein date_period bei einem bestimmten Datum in zwei date_period zu splitten.

Dafür habe ich jetzt selbst eine Funktion geschrieben, frage mich aber, ob man es nicht schlauer machen kann?
void Split_Period(const date_period& period, const date split_date, date_period& part0, date_period& part1) //Kann man z.B. diese Zeile auch schlauer schreiben? { part0 = date_period(period.begin(), split_date); part1 = date_period(split_date, period.end()); }Ich brauche das, wenn ein date_period sich über zwei oder mehr Jahren erstreckt.
Ein Problem ist, dass für date_period kein Default-Konstruktor vorhanden ist. Und als Pointer will ich date_period nicht übergeben, da ich dann das Problem mit new und delete habe.
Glaube ein Copy-Konstruktor ist bei date_period vorhanden.
void Period::Build_Bars() { date_period part1 = period; //Geht, weil glaube ich ein Copy-Constructor vorhanden ist. //date_period part1; //Geht nicht, da kein Default-Konstruktor while(part1.begin().year() < part1.last().year()) { date_period part0 = period; //Finde ich nicht so schlau. date_period current_split = part1; Split_Period(current_split, date(current_split.begin().year() + 1, 1, 1), part0, part1); bars.push_back(Period_Bar(part0)); } bars.push_back(Period_Bar(part1)); }Wollte fragen, ob jemand eine Idee hat, wie man eine Split-Funktion möglichst schlau schreiben könnte und wie ich date_period der Funktion am besten übergeben soll?
-
---