C++:
חישוב תאריך בעתיד או בעבר
איך עושים את זה:
השתמש ב-C++20 ובספרייה <chrono>
לחישובי תאריכים:
#include <iostream>
#include <chrono>
#include <date/date.h> // אם יש צורך בתוספת של Howard Hinnant's date library
int main() {
using namespace std::chrono;
using namespace date;
// היום
auto today = floor<days>(system_clock::now());
// הוסף 30 ימים להיום
auto future_date = today + days{30};
// הורד 30 ימים מהיום
auto past_date = today - days{30};
// הדפסה למען ידע
std::cout << "היום: " << today << "\n";
std::cout << "תאריך עתידי: " << future_date << "\n";
std::cout << "תאריך עברי: " << past_date << "\n";
return 0;
}
פלט לדוגמא:
היום: 2023-03-29
תאריך עתידי: 2023-04-28
תאריך עברי: 2023-02-27
צלילה לעומק:
עד ל-C++20, התקנים לא סיפקו תמיכה רחבה לניהול תאריכים וזמנים. מערכת ה-<chrono>
הורחבה ב־C++20 כדי לכלול יותר פונקציות נוחות לעבודה עם תאריכים ושעות. לפני כן, היינו צריכים להשתמש בספריות חיצוניות כמו boost
או date
של Howard Hinnant. אפשרויות נוספות כוללות ספריית tm
של C, אבל היא קטנה יותר וייתכן שפחות בטוחה. דיקוי תאריכים מתבצע גם בדרך של חישוב ימים עסקיים (לדוגמה, לא סופרים סופ"ש).