Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

In thời gian hệ thống trong C++

Thư viện chuẩn C++ không cung cấp kiểu date phù hợp. C++ kế thừa các struct và hàm thao tác ngày giờ từ C. Để truy cập hàm và cấu trúc liên quan đến ngày giờ, cần include header <ctime> trong chương trình C++.

Có bốn kiểu liên quan đến thời gian: clock_t, time_t, size_t, và tm. Các kiểu clock_t, size_t và time_t có thể biểu diễn thời gian và ngày hệ thống dưới dạng số nguyên.

Kiểu cấu trúc tm giữ ngày giờ dưới dạng cấu trúc C có các thành phần:

struct tm {
    int tm_sec;   // giây 0-61
    int tm_min;   // phút 0-59
    int tm_hour;  // giờ 0-24
    int tm_mday;  // ngày tháng 1-31
    int tm_mon;   // tháng 0-11
    int tm_year;  // năm từ 1900
    int tm_wday;  // ngày từ chủ nhật
    int tm_yday;  // ngày từ 1/1
    int tm_isdst; // giờ mùa hè
}

Giả sử bạn muốn lấy ngày giờ hệ thống hiện tại, hoặc là giờ địa phương (local time) hoặc giờ UTC (Coordinated Universal Time). Ví dụ sau đạt được điều đó:

Ví dụ

#include <iostream>
#include <ctime>
using namespace std;

int main() {
    // ngày/giờ hiện tại dựa trên hệ thống
    time_t now = time(0);
    char* dt = ctime(&now); // chuyển now sang chuỗi
    cout << "Ngày và giờ địa phương: " << dt << endl;
    // chuyển now sang struct tm cho UTC
    tm *gmtm = gmtime(&now);
    dt = asctime(gmtm);
    cout << "Ngày và giờ UTC: " << dt << endl;
}

Kết quả

Ngày và giờ địa phương: Fri Mar 22 13:07:39 2019
Ngày và giờ UTC: Fri Mar 22 07:37:39 2019