كيفية حساب فارق التوقيت في بايثون
نشرت: 2022-01-23عند التعامل مع التواريخ والأوقات في Python ، ستحتاج غالبًا إلى حساب فرق التوقيت. في هذا البرنامج التعليمي ، ستتعلم كيفية حساب الفرق بين طوابع زمنية بالساعات والدقائق والثواني.
بنهاية هذا البرنامج التعليمي ، ستكون قد تعلمت:
- كيفية استخدام وحدة
datetimeفي Python للعمل مع التواريخ والوقت ، - ما هي كائنات
timedelta، وكيف تكون مفيدة ، و - احسب فرق الوقت بين أي طوابع زمنية — بالساعات والدقائق والثواني.
هيا بنا نبدأ.
كيفية استخدام وحدة التاريخ والوقت في بايثون
للعمل مع التواريخ والأوقات في Python ، ستستخدم وحدة datetime . تعد وحدة datetime جزءًا من مكتبة Python القياسية. لذا يمكنك المضي قدمًا واستيراده إلى بيئة عملك على الفور ، مثل هذا:
import datetimeمن أجل حساب فارق التوقيت ، تحتاج إلى إنشاء طوابع زمنية مختلفة. يمكنك اختيار إنشاء:
- كائنين
date، - كائنين
time، أو - مزيج من كائنات
datetime-datetime.
كيفية إنشاء كائن تاريخ في بايثون
دعنا نستورد فئة date من وحدة التاريخ والوقت. لإنشاء كائن تاريخ في Python ، يمكنك استخدام الصيغة العامة datetime.date(<year>,<month>,<day>) . فيما يلي مثال على إنشاء date كائن date1 :
from datetime import date date1 = datetime.date(2022,3,27) print(date1) # Output: 2022-03-27يمكنك تجربة الكود الموجود على مترجم Geekflare Python للاختبار. أو قم بتثبيت Python على جهاز الكمبيوتر الخاص بك.
كما هو موضح أعلاه ، عند طباعة التاريخ ، يتم تنسيقه بالتنسيق YYYY-MM-DD للتواريخ.
ملاحظة : تأكد من تحديد الشهر كعدد صحيح بدون أي أصفار بادئة . من المحتمل أنك معتاد على إضافة صفر بادئ للشهر عند كتابة التواريخ.
على سبيل المثال ، لتحديد تاريخ في شهر يونيو ، الشهر السادس من العام: استخدم 6 وليس 06.
على سبيل المثال ، حاول تشغيل مقتطف الشفرة التالي — حيث تمت الإشارة إلى الشهر على أنه 03 بدلاً من 3 فقط. سترى أنه يلقي خطأ في بناء الجملة كما هو موضح:
date1 = datetime.date(2022,03,27) print(date1) # Error Message File "<ipython-input-12-6eb72084e6ce>", line 1 date1 = datetime.date(2022,03,27) ^ SyntaxError: invalid token دعنا الآن نرى كيفية إنشاء كائن time في بايثون.
كيفية إنشاء كائن الوقت في بايثون
لإنشاء كائن وقت ، دعنا نستورد فئة time . يمكن إنشاء أي كائن وقت بايثون باستخدام فئة time من خلال تحديد سمات الفئة التالية: hour ، minute ، second ، microsecond .
ومع ذلك ، فإن كل هذه السمات اختيارية. إذا لم تحدد سمة معينة ، على سبيل المثال ، second ، يتم تعيينها على 0 افتراضيًا.
يوضح مقتطف الشفرة التالي كيف يمكنك إنشاء وقت كائن time1 1. كما هو الحال مع كائن date ، يمكنك طباعة كائن time لمعرفة الوقت المنسق.
from datetime import time time1 = datetime.time(13,27,45,4600) print(time1) # Output: 13:27:45.004600كيفية إنشاء كائن التاريخ والوقت في بايثون
كما ترى ، لا يحتوي كائن date على معلومات حول الوقت. ولا يحتوي كائن time على معلومات حول التاريخ.
ومع ذلك ، من الناحية العملية ، ستحتاج إلى معلومات التاريخ والوقت. لذلك يوصى باستخدام فئة datetime بدلاً من ذلك.
يمكنك الوصول إلى فئة datetime datetime في بايثون ، كما هو موضح أدناه:
dt1 = datetime.datetime(2022,3,27,13,27,45,46000) print(dt1) # Output: 2022-03-27 13:27:45.046000 لنقم الآن بإنشاء كائن تاريخ ووقت آخر dt2 بدون السمة second . يمكنك أن ترى أنه تم ضبطه على 0 - القيمة الافتراضية.
dt2 = datetime.datetime(2022,6,30,14,28) print(dt2) # Output: 2022-06-30 14:28:00لقد تعلمت حتى الآن كيفية إنشاء الطوابع الزمنية في Python - كتواريخ وأوقات وأوقات زمنية. حان الوقت الآن لمعرفة كيف يمكنك حساب الفرق بين أي طابعين زمنيين.
توجه إلى القسم التالي لمعرفة ذلك.
كيفية استخدام كائن timedelta في بايثون
في بايثون ، تشير timedelta إلى فترة زمنية. إنه الفرق بين كائنين date أو time أو datetime .
إذا أضفت أو طرحت كائنين من date أو time أو datetime ، فستحصل على كائن timedelta . يحتوي كائن timedelta هذا على سمات وطرق مفيدة يمكن أن تساعد في حساب فرق الوقت.
لنبدأ ونحسب الفرق بين عنصري datetime dt1 و dt2 .
dt1 = datetime.datetime(2022,3,27,13,27,45,46000) dt2 = datetime.datetime(2022,6,30,14,28) tdelta = dt2 - dt1 print(tdelta) print(type(tdelta)) # Output 95 days, 1:00:14.954000 <class 'datetime.timedelta'> من مقتطف الشفرة أعلاه ، يمكنك أن ترى أن متغير tdelta يحمل فرق الوقت بين dt1 و dt2 . ويتم التحقق من أن نوع tdelta من الفئة timedelta باستخدام وظيفة Python المدمجة من type() .

الآن دعنا نبرمج مثالًا آخر.
كيفية إيجاد فرق التوقيت بين تاريخين
لنأخذ مثالًا بسيطًا ولكنه مثير للاهتمام.
المشكلة : لحساب فرق التوقيت بين التاريخ الحالي (اليوم) وتاريخ ميلادك.
للقيام بذلك ، قم بتعيين اليوم باعتباره الطابع الزمني الأول وتاريخ ميلادك باعتباره الطابع الزمني الثاني.
كخطوة أولى ، لنقم بإنشاء كائنين datetime :
- واحد لهذا اليوم ، فلنسميها
today، و - آخر لعيد ميلادك ، دعنا نسميها
bday
تحتوي فئة datetime على طريقة now() التي تمنحك التاريخ والوقت المحلي الحاليين. فلنستخدمه today - تاريخنا المرجعي.
today = datetime.datetime.now() print(today) # Sample Output: 2022-01-22 09:10:18.489538 في الكود أدناه ، bday بعيد ميلادك لحساب الوقت المتبقي لعيد ميلادك هذا العام.
إذا كنت تقرأ هذا بعد مرور عيد ميلادك ، فلا تتردد في تعيين يوم عيد bday التالي.
bday = datetime.datetime(2022,8,30,11,59) print(bday) # Sample Output: 2022-08-30 11:59:00 الخطوة التالية هي حساب time_diff وهو كائن timedleta ، كما هو موضح سابقًا. ببساطة اطرح today من bday ، وسيكون لديك فارق التوقيت.
time_diff = bday - today print(f"Your birthday is in {time_diff}") # Output Your birthday is in 220 days, 2:46:00.127416 لمعرفة عدد الأيام المتبقية ، استخدم سمة الأيام في time_diff الوقت ، كما هو موضح:
tdays = time_diff.days print(f"Your birthday is in {tdays} days.") # Output Your birthday is in 220 days.كيف تجد فرق التوقيت بالثواني
دعنا الآن نحسب عدد الثواني بعيد ميلادك.
لحساب فرق الوقت الإجمالي بالثواني ، استخدم طريقة total_seconds() على فرق الوقت timedelta للكائن time_diff .
tsecs = time_diff.total_seconds() print(f"Your birthday is {tsecs} seconds away.") # Output Your birthday is 19017960.127416 seconds away.حسنًا ، هذا انتظار طويل جدًا!
بعد قولي هذا ، أنت تعرف الآن كيفية حساب فرق الوقت بين أي طوابع زمنية بالثواني.
دعنا الآن نعيد النظر في بعض الأساسيات ونكتب ما يلي. يتكون اليوم من 24 ساعة ، والساعة 60 دقيقة ، و 60 ثانية تشكل دقيقة.
وهذا يتلخص في الصورة أدناه:

لذلك للتحويل من الثواني إلى الدقائق والساعات والأيام ، يمكنك استخدام الجدول التالي ، والقسمة على عامل التحويل المقابل.

في الأقسام التالية ، لنحول فرق التوقيت بالثواني إلى دقائق وساعات.
كيف تجد فارق التوقيت بالدقائق
للحصول على فارق التوقيت بالدقائق ، ما عليك سوى قسمة إجمالي الثواني على 60.
دعنا نقسم tsecs على 60 ، ونخزنها في متغير يسمى tmins ، مثل هذا:
tmins = tsecs/60 print(f"Your birthday is {tmins} minutes away.") # Output Your birthday is 316966.0021236 minutes away.كيف تجد فارق التوقيت بالساعات
الآن بعد أن حسبت فرق التوقيت بالدقائق ، يمكنك قسمة ذلك على عامل 60 للحصول على الفرق بالساعات. أو يمكنك قسمة إجمالي الثواني على 60 * 60 = 3600.
thrs = tsecs/(60*60) print(f"Your birthday is {thrs} hours away.") # Output Your birthday is 5282.76670206 hours away.لقد تعلمت الآن كيفية حساب فرق التوقيت في أي وحدة من اختيارك.
استنتاج
في هذا البرنامج التعليمي ، تعلمت كيفية:
- إنشاء التواريخ والأوقات والعمل معها باستخدام وحدة
datetimeفي Python ، - استخدام كائنات
timedeltaللحصول على فترة زمنية ، أو فرق الوقت ، و - احسب فارق التوقيت بالثواني والدقائق والساعات.
آمل أن تكون قد وجدت هذا البرنامج التعليمي مفيد. الآن بعد أن عرفت كل شيء عن حساب فرق التوقيت في بايثون ، حان الوقت لممارسة مهاراتك.
نتمنى لك الاستمتاع بالتعلم والبرمجة!
تعرف على كيفية كتابة رمز يساوي أو لا يساوي أو اصنع لعبة ثعبان في بيثون هنا.
