קבלת התאריך הנוכחי

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 << "Current Date: " << std::format("{:%Y-%m-%d}", std::chrono::system_clock::to_time_t(current_time_point)) << std::endl;

    return 0;
}

פלט לדוגמה:

Current Date: 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 << "Current Date: " 
              << (now->tm_year + 1900) << '-' 
              << (now->tm_mon + 1) << '-'
              <<  now->tm_mday
              << std::endl;

    return 0;
}

פלט לדוגמה:

Current Date: 2023-03-15

באמצעות Boost Date_Time

לפרויקטים המשתמשים בספריות של Boost, ספריית Boost Date_Time מציעה דרך חלופית לקבל את התאריך הנוכחי:

#include <iostream>
#include <boost/date_time.hpp>

int main() {
    // קבלת היום הנוכחי באמצעות לוח השנה הגרגוריאני של Boost
    boost::gregorian::date today = boost::gregorian::day_clock::local_day();
    std::cout << "Current Date: " << today << std::endl;

    return 0;
}

פלט לדוגמה:

Current Date: 2023-Mar-15

הדוגמאות הללו מספקות בסיס יסודי לעבודה עם תאריכים ב-C++, הכרחי עבור מגוון רחב של יישומים.