في واقع الأمر، نعلم أن C ++ هي نسخة مطورة من C، وبالتالي، هناك العديد من الوظائف والهياكل التي ورثتها C ++ من لغة C. التاريخ والوقت في C ++ هو أحد الهياكل التي ورثتها لغة C من أجل معالجة التاريخ والوقت. يتم تضمين ملف الرأس <ctime> في برنامج C ++ من أجل الوصول إلى الوظائف والهياكل المنظمة للتاريخ والوقت.
هناك أربعة أنواع من الوقت:
● Clock_t
● Time_t
● Size_t
● Tm
يتم تمثيل وقت النظام وتاريخه كنوع من الأعداد الصحيحة بواسطة الأنواع clock_t و size_t و time_t.
فيما يلي قائمة بالعناصر التي يحتفظ بها نوع الهيكل tm. يحمل نوع الهيكل tm بشكل عام التاريخ والوقت في شكل بنية C تحتوي على العناصر التالية:
struct tm {
int tm_sec; // seconds of minutes from 0 to 61
int tm_min; // minutes of hour from 0 to 59
int tm_hour; // hours of day from 0 to 24
int tm_mday; // day of month from 1 to 31
int tm_mon; // month of year from 0 to 11
int tm_year; // year since 1900
int tm_wday; // days since sunday
int tm_yday; // days since January 1st
int tm_isdst; // hours of daylight savings time
}
يتم عرض Functions المهمة التي تستخدمها عند العمل مع التاريخ والوقت في C أو C ++ في الجدول أدناه. كل هذه Functions جزء من مكتبة C ++ القياسية، ويمكنك التحقق من تفاصيلها باستخدام مرجع مكتبة C ++ القياسي أدناه.
الرقم | الوصف |
---|---|
1 | time_t time(time_t *time); تقوم هذه الوظيفة بإرجاع وقت تقويم النظام الحالي من 1 يناير 1970 بالثواني، وإرجاع 1 إذا لم يكن هناك وقت. |
2 | char *ctime(const time_t *time); إرجاع التاريخ والوقت بصيغة اليوم، الشهر، السنة: الدقائق: ثواني السنة \ n \ 0. |
3 | struct tm *localtime(const time_t *time); تقوم هذه الوظيفة بإرجاع التوقيت المحلي على مؤشر tm |
4 | clock_t clock(void); تُستخدم هذه الوظيفة لإرجاع قيمة تقارب مقدار الوقت الذي تم فيه تشغيل البرنامج المتصل. في حالة عدم توفر الوقت ، يتم إرجاع القيمة .1. |
5 | char * asctime ( const struct tm * time ); تقوم هذه الوظيفة بإرجاع المعلومات المخزنة في tm كسلسلة بالتنسيق "اليوم والشهر وتاريخ الساعات: الدقائق: ثواني السنة \ n \ 0" |
6 | struct tm *gmtime(const time_t *time); تقوم هذه الوظيفة بتحويل الوقت المحدد إلى وقت تقويم UTC |
7 | time_t mktime(struct tm *time); ترجع هذه الدالة القيمة المكافئة لوقت التقويم المحلي وفقًا للهيكل المحدد زمنياً |
8 | double difftime ( time_t time2, time_t time1 ); تُرجع فرق الوقت بين الوقت 1 المُدخل والوقت 2 المُدخل بالثواني |
9 | size_t strftime(); تُستخدم هذه الوظيفة لتنسيق التاريخ والوقت وفقًا لتنسيقات محددة |
التاريخ والوقت الحاليان Current Date and Time
إذا كان المبرمج يريد استرداد التاريخ والوقت الحاليين للنظام إما بتنسيق التوقيت المحلي أو بتنسيق UTC وهو أساسًا التوقيت العالمي المنسق ، فإليك مثالاً يمنحك الإخراج الذي تمت مناقشته:
#include <iostream>
#include <ctime>
using namespace std;
int main() {
// current date/time based on current system
time_t now = time(0);
// convert now to string form
char* dt = ctime(&now);
cout << "The local date and time is: " << dt << endl;
// convert now to tm struct for UTC
tm *gmtm = gmtime(&now);
dt = asctime(gmtm);
cout << "The UTC date and time is:"<< dt << endl;
}
بعد تجميع وتنفيذ الكود أعلاه، يتم عرض النتيجة التالية:
تنسيق الوقت باستخدام هيكل Format Time using struct tm
بعد تجميع وتنفيذ الكود أعلاه، يتم عرض النتيجة التالية:
Number of sec since January 1, 1970:1294548238
Year: 2011
Month: 1
Day: 8
Time: 22: 44:59