C++:
So sánh hai ngày

Cách thực hiện:

C++ làm cho cuộc sống dễ dàng với tiêu đề <chrono>.

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

int main() {
    using namespace std::chrono;

    // Tạo các điểm thời gian system_clock
    system_clock::time_point hôm_nay = system_clock::now();
    system_clock::time_point mộtNgàyNàoĐó = system_clock::now() - hours(24); // Hôm qua

    // Chuyển đổi sang time_t để so sánh
    time_t hôm_nay_time_t = system_clock::to_time_t(hôm_nay);
    time_t mộtNgàyNàoĐó_time_t = system_clock::to_time_t(mộtNgàyNàoĐó);

    if (hôm_nay_time_t > mộtNgàyNàoĐó_time_t) {
        std::cout << "Hôm nay là sau mộtNgàyNàoĐó.\n";
    } else if (hôm_nay_time_t < mộtNgàyNàoĐó_time_t) {
        std::cout << "Hôm nay là trước mộtNgàyNàoĐó.\n";
    } else {
        std::cout << "Các ngày giống nhau.\n";
    }

    return 0;
}

Kết quả mẫu:

Hôm nay là sau mộtNgàyNàoĐó.

Sâu hơn:

Kể từ C++11, <chrono> là nơi dành cho ngày và giờ. Trước đó, bạn có thể đang vật lộn với <ctime> và các cấu trúc như tm. Không đẹp mắt.

Có thay thế không? Chắc chắn, có các thư viện bên thứ ba như Boost.DateTime. Nhưng tại sao phải phức tạp khi <chrono> đang ở ngay đó và đang phát triển.

Chi tiết thực hiện để giữ trong túi sau của bạn:

  • std::chrono đối phó với các điểm thời gian và thời lượng.
  • system_clock đo thời gian thực tế.
  • time_point là một điểm thời gian cụ thể (ví dụ, một ngày).
  • time_t là một kiểu số học, tiện lợi cho việc so sánh.

Xem thêm: