Datum: Monat oder Jahr addieren



  • Hallo zusammen,

    wie kann ich zu einem Datum eine Anzahl von Wochen, Monaten oder Jahren hinzufügen? Ähnlich zB der Funktion EDATE() in Excel.

    Ich habe mir bereits CTime / CTimeSpan sowie struct tm / tm_mon angeschaut, allerdings gibt es hier Probleme wenn ich zB einen Monat zum 29.Februar 2013 hinzufügen will.

    Gibt es hier eine Bibliothek die ich benutzen könnte, oder muss ich mir selbst etwas bauen?

    Danke + Gruß


  • Mod

    Da du hier bei C++ fragst: Wie wäre es mit den Methoden aus der C++-Standardbibliothek? Bei denen kann man sogar ganz einfach per + und - Zeitspannen zu einem Datum hinzufügen oder abziehen.
    http://en.cppreference.com/w/cpp/chrono/

    Wenn es unbedingt MFC sein soll, dann hast du hier im falschen Forum gefragt. Soll ich dich nach MFC verschieben?



  • SeppJ schrieb:

    [...] Datum [...]
    [...] chrono [...]

    Bist heute wohl mit dem falschen Fuss aufgestanden, was?

    Was der TE braucht, ist Boost.DateTime.


  • Mod

    Sone schrieb:

    SeppJ schrieb:

    [...] Datum [...]
    [...] chrono [...]

    Bist heute wohl mit dem falschen Fuss aufgestanden, was?

    😕

    #include <iostream>
    #include <iomanip>
    #include <ctime>
    #include <chrono>
    
    int main()
    {
    
        using namespace std::chrono;
    
        system_clock::time_point now = system_clock::now();
        std::time_t now_c = system_clock::to_time_t(
                                now - std::chrono::hours(24));
        std::cout << "One day ago, the time was "
                  << std::put_time(std::localtime(&now_c), "%F %T") << '\n';
    }
    


  • Ja, und jetzt zieh mal 65 Tage vom 14. Maerz 1998 ab. Viel Spass.


  • Mod

    Sone schrieb:

    Ja, und jetzt zieh mal 65 Tage vom 14. Maerz 1998 ab. Viel Spass.

    Ok, das könnte ein bisschen umständlich werden 🙂



  • SeppJ schrieb:

    Sone schrieb:

    Ja, und jetzt zieh mal 65 Tage vom 14. Maerz 1998 ab. Viel Spass.

    Ok, das könnte ein bisschen umständlich werden 🙂

    🙂 Ich wollte nur darauf anspielen, dass der TE ursprünglich das hier wollte:

    wie kann ich zu einem Datum eine Anzahl von Wochen, Monaten oder Jahren hinzufügen?

    👍

    Chrono ist insgesamt nur für Zeit an sich sinnvoll. Ich wäre auch dafür, eine Lib wie DateTime zum Standard hinzuzufügen. Von Zeit bis Datum ist es doch ein sehr kleiner Schritt. Leider sieht das in naher Zukunft schlecht aus.



  • In den .Net-Bibliotheken ist DateTime mit allen erforderlichen Methoden wie AddDays(), AddMonths(), AddYears() usw. vorhanden und leicht zu handhaben.
    Vielleicht schreibt man eine C#-DLL und bindet diese in das C++-Projekt ein? Wie weiss ich aber nicht.



  • Tad schrieb:

    allerdings gibt es hier Probleme wenn ich zB einen Monat zum 29.Februar 2013 hinzufügen will.

    kein wunder das es probleme gibt, wenns den tag gar nicht gibt 😕


Anmelden zum Antworten