التاريخ والوقت مع لغة بايثون python




يمكن التحكم بالوقت والتاريخ بعدة طرق. التحويل بين صيع التاريخ أمر شائع للغاية في الحواسيب. ضبط الوقت والتقويم في لغة البرمجة python يساعد في تعقب التواريخ والوقت.




ماهي العلامة؟


الفواصل الزمنية عبارة عن أرقام بالفاصلة العائمة وتكون من مرتبة الثانية ويتم التعبير عنها بالثواني منذ 12:00am, January 1, 1970 .
هناك العديد من وحدات الزمن المستخدمة في لغة البرمجة Python والتي تؤمن العديد من التوابع للعمل مع الزمن وللتحويل بين أنماط الزمن. التابع time.time() يعيد النظام الحالي للعلامات منذ 12:00am, January 1, 1970.

مثال
#!/usr/bin/python

import time; # This is required to include time module.

ticks = time.time()

print "Number of ticks since 12:00am, January 1, 1970:", ticks

عندها تظهر النتيجة التالية
Number of ticks since 12:00am, January 1, 1970: 7186862.73399

إن عملية حساب البيانات سهلة للتنفيذ مع العلامات, التواريخ قبل epoch

لا مكن تمثيلها بهذه الصيغة كما أن التواريخ المستقبلية لا يمكن تمثيلها أيضاً.




ما هو صف الزمن؟


العديد من التوابع المستخدمة للتعامل مع الزمن هي عبارة عن صف من 9أرقام كما هو مبين في الجدول التالي





















































المؤشرالحقلالقيمة
04-digit year2008
1Month1 to 12
2Day1 to 31
3Hour0 to 23
4Minute0 to 59
5Second0 to 61 (60 or 61 are leap-seconds)
6Day of Week0 to 6 (0 is Monday)
7Day of year1 to 366 (Julian day)
8Daylight savings-1, 0, 1, -1 تعني محددات المكتبة DST

 

إن الصف السابق موافق للتركيب struct_time وهذا التركيب يتميز بالسمات التالية:





















































المؤشرالسماتالقيم
0tm_year2008
1tm_mon1 to 12
2tm_mday1 to 31
3tm_hour0 to 23
4tm_min0 to 59
5tm_sec0 to 61 (60 or 61 are leap-seconds)
6tm_wday0 to 6 (0 is Monday)
7tm_yday1 to 366 (Julian day)
8tm_isdst-1, 0, 1, -1 تعني محددات المكتبة DST

 




الحصول على الزمن الحالي


لتحويل لحظة الزمن من الثواني على شكل قيمة الفاصلة العائمة بالصيغة epoch إلى صف الزمن, يتم إدخال القيمة ذات الفاصلة العائمة إلى التابع الذي يعيد صف الزمن مع البنود ال 9 المتوفرة.

مثال
#!/usr/bin/python

import time;

localtime=time.localtime(time.time())

print"Local current time :",localtime

فتظهر النتيجة التالية
Local current time : time.struct_time(tm_year=2013, tm_mon=7,

tm_mday=17, tm_hour=21, tm_min=26, tm_sec=3, tm_wday=2, tm_yday=198, tm_isdst=0)





الحصول على الوقت المصاغ (المنسق)


يمكن صياغة الوقت بالطريقة التي يريدها المستخدم ولكن الطريقة المثلى للحصول على الوقت بطريقة مقروءة هي استخدام التابع asctime()
#!/usr/bin/python

import time;

localtime=time.asctime(time.localtime(time.time()))

print"Local current time :",localtime

فتظهر النتيجة التالية
Local current time :TueJan1310:17:092009





الحصول على التقويم لشهر


تعطي وحدة التقويم خيارات واسعة للتعامل مع التقويم الشهري والسنوي, يمثل التالي تقويماً لشهر معطى هو كانون الثاني 2008
#!/usr/bin/python

import calendar

cal=calendar.month(2008,1)

print"Here is the calendar:"

printcal;

فتظهر النتيجة التالية
Here is the calendar:
January 2008
Mo Tu We Th Fr Sa Su
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31





وحدة الزمن


هناك العديد من وحدات الزمن المستخدمة في لغة البرمجة Python والتي تؤمن العديد من التوابع للعمل مع الزمن وللتحويل بين أنماط الزمن.
يبين الجدول التالي الطرق المتاحة























































الرقم التسلسليالتابع والوصف
1time.altzone إزاحة DST التوقيت المحلي بضع في ثوان غرب UTC. ويكون سلبيا إذا كان DST التوقيت المحلي شرق UTC.
2time.asctime([tupletime]) تقبل صف الزمن وتعيد سلسلة قابلة للقراءة من 24 حرف. مثل Tue Dec 11 18:07:14 2008'.
3time.clock( ) تعيد الوقت CPUكرقم بالفاصلة العائمة من الثواني. لقياس التكاليف الحسابية من المناهج المختلفة وقيمة الوقت فإن الساعة مفيدة جداً أكتر من التعليمة time.time() .
4time.ctime([secs]) تشبه ال asctime(localtime(secs)) ومن دون مدخلات تشبه ال asctime( ).
5time.gmtime([secs]) تقبل اللحظة الزمنية بالثانية وتعيد صف الزمن t مع الزمنUTC مع ملاحظة أن t.tm_isdst دوماً تأخذ القيمة صفر.
6time.localtime([secs])تقبل اللحظة الزمنية بالثانية وتعيد صف الزمنt مع الزمن المحلي .
7time.mktime(tupletime) تقبل اللحظة الزمنية كصف زمن بالتوقيت المحلي وتعيد قيمة الفاصلة العائمة معبراً عنها بالثواني.
8time.sleep(secs) تعلق استدعاء الثواني secs.
9time.strftime(fmt[,tupletime]) يقبل اللحظة الزمنية معبراً عنها كصف زمن بالتوقيت المحلي ويعيد سلسلة تمثل اللحظة الزمنية موصوفة بالسلسلة fmt .
10time.strptime(str,fmt='%a %b %d %H:%M:%S %Y') يوزع ال str وفقاً للسلسلة fmt ويعيد اللحظة الزمنية بصيغة صف الزمن.
11time.time( ) تعيد اللحظة الزمنية الحالية, عدد الثواني كرقم بالفاصلة العائمة.
12time.tzset() تعيد ضبط قواعد التحويل الزمني باستخدام المكتبة الاعتيادية.

يمثل الجدول التالي السمتين الأكثر أهمية والمتوفرتين في وحدة الزمن















الرقم التسلسليالسمة مع الوصف
1 time.timezone سمة الوقت. تمثل المنطقة الزمنية إزاحة في الثواني للمنطة الزمنية المحلية .
2time.tzname سمة الوقت. تمثل زوجاً من السلسلاسل المحلية المرتبطة والتي تسمي المنطقة الزمنية المحلية بدون أو مع DST.

 




وحدة التقويم


تتضمن هذه الوحدة على توابع مرتبط بالتقويم بما في ذلك التوابع المستخدمة لطباعة نص التقويم من أجل شهر أو سنة معطاة. ويشكل افراضي فإن التقويم يأخذ الاثنين كأول أيام الأسبوع والأحد آخرها ولتغغير ذلك يتم استدعاء التابع setfirstweekday()

يمثل الجدول التالي قائمة بالتوابع المتوفرة في وحدة التقويم:























































الرقم التسلسليالتابع والوصف
1calendar.calendar(year,w=2,l=1,c=6) تقوم بإرجاع سلسلة متعددة الأسطر مع وضع جدول زمني لمدة سنة في ثلاثة أعمدة مفصولة بمسافات c حيث w هو العرض لأحرف كل تاريخ وكل سطر له طول 21*w+18+2*c .I تمثل عدد الأسطر لكل أسبوع.
2calendar.firstweekday( )تعيد الضبط الحالي ليوم الأسبوع الذي يبدأ عنده الأسبوع وبشكل افتراضي عندما يتم استيراد التقويم أولاً تكون القيمة 0 مما يعني يوم الاثنين.
3calendar.isleap(year) تعيد القيمة صح إذا كانت السنة سنة طفرة ويعيد القيمة خطأ في حال عكس ذلك.
4calendar.leapdays(y1,y2) تعيد العدد الكلي للايام الطفرة في السنة ضمن المجال range(y1,y2).
5calendar.month(year,month,w=2,l=1)تقوم بإرجاع سلسلة متعددة الأسطر مع وضع جدول زمني لشهر من السنة. سطر للأسبوع بالإضافة إلى سطرين رئيسيين.
6calendar.monthcalendar(year,month) بإرجاع قائمة من قوائم [ints]. كل قائمة فرعية تدل على الأسبوع. يتم تعيين الأيام خارج الشهر بالدليل 0؛ ويتم تعيين الأيام خلال الشهر وفقاً لليوم خلال الشهر أي 1 وما فوق.
7calendar.monthrange(year,month) تعيد رقمين صحيحين. الأول يمثل شيفرة اليوم الأول من الشهر والثاني يمثل عدد الأيام في الشهر.
8calendar.prcal(year,w=2,l=1,c=6) تشبه طباعة التقويم calendar(year,w,l,c).
9calendar.prmonth(year,month,w=2,l=1) تشبه طباعة التقويم month(year,month,w,l).
10calendar.setfirstweekday(weekday) تضبط اليوم الأول لكل أسبوع حيث شيفرة أيام الأسبوع هي 0 ليوم الاثنين و6 ليوم الأحد.
11calendar.timegm(tupletime) يستخدم لعكس الزمن gmtime تقبل اللحظة الزمنية كصف الزمن وتعيد اللحظة الزمنية نفسها كرقم بالفاصلة العائمة يمثل الثواني .
12calendar.weekday(year,month,day) تعيد شيفرة اليوم الأسبوعي كرقم بالفاصلة العائمة يمثل الثواني





الوحدات والتوابع الأخرى



ليست هناك تعليقات:

إرسال تعليق