Zu Datum eine Woche addieren
-
Hallo,
ich muss regelmäßig Listen der Form 21.1.2010, 28.1.2010, 4.2.2010, ... erstellen. Von Hand ist das auf Dauer ein wenig aufwändig, daher dachte ich, es ist vielleicht möglich dies mit C++ zu vereinfachen. Vom Prinzip her hätte ich gerne so ein Programm:
Startdatum = 21.1.2010; Datum = Startdatum; Anzahl_Wochen = 3; for (int i=0; i<3; i++){ schreibe Datum in Textdatei; Datum = Datum + eine Woche; }
Geht das in C++ ohne zu viel von Hand selber programmieren zu müssen? Falls ja, kann mir jemand einen Tipp geben wie?
Gruß und vielen Dank
Soldberg(falls relevant: ich programmiere unter Linux)
-
Probiers mal mit dem timestamp von einem datum und addiere dann die anzahl der sekunden einer woche; sollte nicht allzu schwer sein;
http://www.cplusplus.com/reference/clibrary/ctime/
MFG
-
Kleine Fleissaufgabe! Hau die ursprünglichen Datumangaben in einen long int der Form 20100107 und addiere 7 (so viele Tage hat eine Woche). Für das Jahr und den Monat musst du dir etwas einfallen lassen. Dann musst du nur noch in das gewünschte neue Datum zurück wandeln. daddeldu!
-
berniebutt schrieb:
Kleine Fleissaufgabe! Hau die ursprünglichen Datumangaben in einen long int der Form 20100107 und addiere 7 (so viele Tage hat eine Woche). Dann musst du nur noch in das gewünschte neue Datum zurück wandeln. daddeldu!
Dann hatt ein monat 99 tage und ein jahr 99monate
-
Das geht mit Boost.date_time.
Beispiel:#include <iostream> #include <boost/date_time/gregorian/gregorian.hpp> int main() { using namespace boost::gregorian; date cdate(2010,1,1); cdate+=date_duration(7); std::cout << cdate.day() << '.' << static_cast<int>(cdate.month()) << '.' << cdate.year() << std::endl; }
-
@XBertDann: Ja, hatte ich selbst schon gemerkt und korrigiert. Der Ansatz ist aber richtig, wenn man nicht auf fremde LIB-Funktionen zurückgreifen will.
-
vielen Dank für die schnellen Antworten!
berniebutt schrieb:
Der Ansatz ist aber richtig, wenn man nicht auf fremde LIB-Funktionen zurückgreifen will.
Auf fremde LIB-Funktionen zugreifen zu müssen stört mich nicht.
Athar schrieb:
Das geht mit Boost.date_time
Klasse, genau so etwas habe ich gesucht!