دوال التاريخ والوقت في لغة C

تُعدّ دوال التاريخ والوقت في لغة C مجموعة من الدوال في المكتبة القياسية للغة البرمجة C، وهي تُنفّذ عمليات معالجة التاريخ والوقت. [ 1 ] وتُوفّر هذه الدوال دعمًا للحصول على الوقت ، والتحويل بين تنسيقات التاريخ، وإخراج البيانات بتنسيق نصي.

تاريخ

يعود استخدام سلسلة التنسيق في التتبعات إلى PWB/UNIX 1.0strftime على الأقل ، والذي صدر عام 1977. يتضمن أمر النظام الخاص به خيارات تنسيق متنوعة. [ 2 ] [ 3 ] في عام 1989، صدر معيار ANSI C متضمنًا وظائف التاريخ والوقت الأخرى. [ 4 ]datestrftime

نظرة عامة على الوظائف

يتم تعريف عمليات التاريخ والوقت في لغة C في <time.h>ملف الرأس ( <ctime>الرأس في لغة C++ ).

المعرفوصف
التلاعب بالزمنdifftimeيحسب الفرق بالثواني بين time_tقيمتين
timeتُعيد هذه الدالة الوقت الحالي للنظام كقيمة time_t، وهي عدد الثواني (عادةً ما تكون المدة الزمنية منذ بداية حقبة زمنية ، وتحديدًا حقبة يونكس ). وتختلف قيمة الحقبة الزمنية باختلاف نظام التشغيل؛ وغالبًا ما تُستخدم القيمتان 1900 و1970. انظر RFC 868.
clockيُعيد عدد دورات المعالج المرتبطة بالعملية
timespec_get(C11)يُعيد وقت التقويم بناءً على قاعدة زمنية
تحويلات التنسيقasctimeيحوّل struct tmكائنًا إلى تمثيل نصي (مهمل)
ctimeيحوّل time_tقيمة إلى تمثيل نصي
strftimeيحوّل struct tmكائنًا إلى تمثيل نصي مخصص
strptimeيحوّل سلسلة نصية تحتوي على معلومات الوقت إلىstruct tm
wcsftimeيحوّل struct tmكائنًا إلى تمثيل نصي مخصص لسلسلة عريضة
gmtimeيحول time_tقيمة إلى وقت تقويمي معبر عنه بالتوقيت العالمي المنسق [ 5 ]
localtimeيحوّل time_tالقيمة إلى وقت تقويمي معبر عنه بالتوقيت المحلي
mktimeيحول الوقت التقويمي إلى time_tقيمة.
الثوابتCLOCKS_PER_SECعدد نبضات ساعة المعالج في الثانية
TIME_UTCالتوقيت العالمي المنسق (UTC)
الأنواعstruct tmنوع الوقت في التقويم المفصل : السنة، الشهر، اليوم، الساعة، الدقيقة، الثانية
time_tنوع الوقت الحسابي (عادةً الوقت منذ حقبة يونكس )
clock_tنوع وقت تشغيل العملية
struct timespecالوقت بالثواني والنانو ثانية

timespecاقترح ماركوس كون في الأصل نوعيْ `T` و`T` المرتبطين به لتوفير مجموعة متنوعة من قواعد الوقت، ولكن لم يُقبل سوى `T` . TIME_UTC[ 6 ] ومع ذلك، أُضيفت هذه الوظائف إلى لغة C++ مع إصدار C++20 في عام 2000 std::chrono.

مثال

يقوم كود المصدر C التالي بطباعة الوقت الحالي إلى دفق الإخراج القياسي .

#include <stdio.h> #include <stdlib.h> #include <time.h>int main ( void ) { // الحصول على الوقت الحالي. time_t current_time = time ( NULL );إذا كان الوقت الحالي يساوي ( الوقت الحالي ) - 1 ، فسيتم طباعة رسالة خطأ إلى الخطأ القياسي تفيد بفشل الحصول على الوقت الحالي. ثم يتم إرجاع رمز الخطأ EXIT_FAILURE .// تحويل إلى تنسيق التوقيت المحلي. char * time_string = ctime ( & current_time );إذا لم يتم تحويل الوقت الحالي ، فسيتم طباعة رسالة خطأ إلى الخطأ القياسي ، وسيتم إرجاع رمز الخطأ EXIT_FAILURE .// اطبع إلى الإخراج القياسي. لقد أضافت الدالة ctime() بالفعل حرف سطر جديد. printf ( "الوقت الحالي هو %s" , time_string ); return EXIT_SUCCESS ; }

الناتج هو:

الوقت الحالي هو الخميس 15 سبتمبر 2016، الساعة 21:18:23

انظر أيضاً

مراجع