Sammenlikning av to datoer

C++:
Sammenlikning av to datoer

How to:

#include <iostream>
#include <ctime>

int main() {
    std::time_t now = std::time(nullptr);
    std::tm* now_tm = std::localtime(&now);

    std::tm other_date = *now_tm;
    other_date.tm_mday += 7; // La oss si vi legger til 7 dager

    // Sammenlign datoer
    double seconds_diff = std::difftime(std::mktime(&other_date), now);
    if (seconds_diff == 0) {
        std::cout << "Datoene er identiske.\n";
    } else if (seconds_diff > 0) {
        std::cout << "Andre dato kommer etter den første.\n";
    } else {
        std::cout << "Andre dato er før den første.\n";
    }

    return 0;
}

Sample output:

Andre dato kommer etter den første.

Deep Dive

Før <chrono> biblioteket ble introdusert med C++11, brukte C++ programmører <ctime>. I dag tilbyr <chrono> en moderne og type-sikker tilnærming til dato- og tidshåndtering.

Alternativer inkluderer tredjeparts biblioteker som Boost.DateTime, men C++ sitt standardbibliotek blir stadig bedre og skal dekke de fleste behov.

Å implementere dato-sammenligning manuelt kan være risikabelt grunnet komplikasjonene med skuddår, tidssoner og historiske dato-forskjeller. Det er best å bruke etablerte biblioteker som ordner disse detaljene for deg.

See Also