Kahden päivämäärän vertailu

C++:
Kahden päivämäärän vertailu

How to: (Kuinka Tehdään:)

#include <iostream>
#include <chrono>
#include <ctime>

int main() {
    // Alustetaan kaksi päivämäärää
    std::chrono::system_clock::time_point today = std::chrono::system_clock::now();
    std::chrono::system_clock::time_point deadline = today + std::chrono::hours(72); // 3 päivän päästä

    // Vertaillaan päivämääriä
    if (today < deadline) {
        std::cout << "Aikaa on jäljellä." << std::endl;
    } else {
        std::cout << "Määräaika on umpeutunut." << std::endl;
    }

    // Tulostetaan päivämäärät
    std::time_t today_time = std::chrono::system_clock::to_time_t(today);
    std::time_t deadline_time = std::chrono::system_clock::to_time_t(deadline);
    std::cout << "Tänään on: " << std::ctime(&today_time);
    std::cout << "Määräaika on: " << std::ctime(&deadline_time);

    return 0;
}

Esimerkkitulos:

Aikaa on jäljellä.
Tänään on: Wed Mar 3 10:05:26 2023
Määräaika on: Sat Mar 6 10:05:26 2023

Deep Dive (Sukellus Syvyyksiin):

Päivämäärävertailu on ollut tietokonemaailman perustehtäviä alusta alkaen. Historiallisesti päivämääriä on hallittu monella tavalla, alkaen yksinkertaisista kokonaislukuesityksistä sekunnin murto-osineen (UNIX-aikaleima) nykyisiin monimutkaisempiin kirjastoihin kuten std::chrono C++:ssa. std::chrono tarjoaa tyypiturvallisen tavan käsitellä aikaa ja päivämääriä, joka vähentää virheiden määrää.

Vaihtoehtoja std::chrono:lle ovat esimerkiksi vanhemmat C-kirjastot (kuten time.h) tai kolmannen osapuolen kirjastot, kuten Boost.Date_Time. Kuitenkin std::chrono on nykyaikainen valinta ja sen käyttöä suositellaan sen turvallisuuden ja joustavuuden vuoksi.

Toteutuksen yksityiskohtiin kuuluu aikavyöhykkeiden, kesäaikaan siirtymisen ja kalenteristandardien tunteminen. Nämä seikat voivat vaikuttaa päivämäärien vertailuun ja tulkitsemiseen.

See Also (Katso Myös):