01/10/2018, 14:53
Time_t và time(0) trong C++
Chào mọi người, em đang học về cách sinh số ngẫu nhiên.
Cho em hỏi về sự khác nhau giữa time_t và time(0) ạ. Em nghĩ time_t là đo thời gian khi lập trình, còn time(0) là tính từ năm 1970.
Nếu đúng như vậy thì em không hiểu time_t lấy mốc đầu tiên là khi nào, khi mình tạo project hay khi mình chạy chương trình.
Em xin cảm ơn
Bài liên quan





time_tlà kiểu dữ liệu, ko phải để đo đạc cái gì hết. Chữ_tnghĩa là “type”.time_tviết tắt cho time_type là kiểu dữ liệu “thời gian”.biến kiểu
time_tcó giá trị là số giây tính từ epoch (1970-01-01 00:00:00 UTC)time(0)là hàm trong thư việnctime, nhận vào 1 con trỏ, thực hiện lưu giá trị x là số giây tính từ epoch vào nơi mà con trỏ đó trỏ tới, và trả về x. Nếu con trỏ đó làNULLthì chỉ trả về x.và cuối cùng là
time_tlà của nợ C++ gánh từ C qua, C++ có thư việnchronohại điện hơnC++11 chrono tuy dài dòng nhưng rõ ràng hơn:
std::chrono::system_clocklà cái đồng hồ đo thời gianstd::chrono::system_clock::now()nghĩa là lấy thời gian hiện tại của cái system_clock này, kiểu dữ liệu của nó làtime_pointlà mốc thời gian.time_since_epoch()nghĩa là lấy mốc thời gian hiện tại trừ cho mốc thời gian tại epoch. Kết quả trả về là 1 khoảng thời giandurationdurationcó thể chứa số giây, số mili giây, micro giây, hay nano giây. Muốn lấy số giây thì phải ép kiểu về kiểuseconds. Vì ở đây có bỏ qua số micro/nano giây nên phải ép kiểu tường minh bằngduration_cast,secondsra thông qua.count()