C++:
การรับวันที่ปัจจุบัน
วิธีการ:
C++ มีหลายวิธีในการรับวันที่ปัจจุบัน รวมถึงห้องสมุดมาตรฐาน C++ และห้องสมุดของบุคคลที่สามเช่น Boost ตัวอย่างต่อไปนี้แสดงวิธีการทำงานนี้
การใช้ <chrono>
(C++20 และใหม่กว่า)
C++20 ได้เพิ่มฟังก์ชั่นการณ์เพิ่มเติมในห้องสมุด <chrono>
ทำให้ง่ายต่อการรับวันที่ปัจจุบัน:
#include <iostream>
#include <chrono>
#include <format> // สำหรับ std::format (C++20)
int main() {
auto current_time_point = std::chrono::system_clock::now(); // บันทึกเวลาปัจจุบัน
auto current_time_t = std::chrono::system_clock::to_time_t(current_time_point); // แปลงเป็น time_t
// จัดรูปแบบเวลาให้อ่านง่าย
std::cout << "วันที่ปัจจุบัน: " << std::format("{:%Y-%m-%d}", std::chrono::system_clock::to_time_t(current_time_point)) << std::endl;
return 0;
}
ตัวอย่างผลลัพธ์:
วันที่ปัจจุบัน: 2023-03-15
การใช้ <ctime>
สำหรับโปรแกรมเมอร์ที่ทำงานกับเวอร์ชันเก่าของ C++ หรือผู้ที่ชอบห้องสมุด C แบบดั้งเดิม:
#include <iostream>
#include <ctime>
int main() {
std::time_t t = std::time(0); // รับเวลาปัจจุบัน
std::tm* now = std::localtime(&t);
std::cout << "วันที่ปัจจุบัน: "
<< (now->tm_year + 1900) << '-'
<< (now->tm_mon + 1) << '-'
<< now->tm_mday
<< std::endl;
return 0;
}
ตัวอย่างผลลัพธ์:
วันที่ปัจจุบัน: 2023-03-15
การใช้ Boost Date_Time
สำหรับโครงการที่ใช้ห้องสมุด Boost, ห้องสมุด Boost Date_Time มีวิธีการแทนที่ในการรับวันที่ปัจจุบัน:
#include <iostream>
#include <boost/date_time.hpp>
int main() {
// รับวันปัจจุบันโดยใช้ปฏิทิน Gregorian ของ Boost
boost::gregorian::date today = boost::gregorian::day_clock::local_day();
std::cout << "วันที่ปัจจุบัน: " << today << std::endl;
return 0;
}
ตัวอย่างผลลัพธ์:
วันที่ปัจจุบัน: 2023-Mar-15
ตัวอย่างเหล่านี้เป็นพื้นฐานสำคัญสำหรับการทำงานกับวันที่ใน C++, ซึ่งสำคัญสำหรับแอปพลิเคชั่นหลายๆ ประเภท.