การรับวันที่ปัจจุบัน

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++, ซึ่งสำคัญสำหรับแอปพลิเคชั่นหลายๆ ประเภท.