كيفية حساب فارق التوقيت في بايثون

نشرت: 2022-01-23

عند التعامل مع التواريخ والأوقات في Python ، ستحتاج غالبًا إلى حساب فرق التوقيت. في هذا البرنامج التعليمي ، ستتعلم كيفية حساب الفرق بين طوابع زمنية بالساعات والدقائق والثواني.

بنهاية هذا البرنامج التعليمي ، ستكون قد تعلمت:

  • كيفية استخدام وحدة datetime في Python للعمل مع التواريخ والوقت ،
  • ما هي كائنات timedelta ، وكيف تكون مفيدة ، و
  • احسب فرق الوقت بين أي طوابع زمنية — بالساعات والدقائق والثواني.

هيا بنا نبدأ.

كيفية استخدام وحدة التاريخ والوقت في بايثون

للعمل مع التواريخ والأوقات في Python ، ستستخدم وحدة datetime . تعد وحدة datetime جزءًا من مكتبة Python القياسية. لذا يمكنك المضي قدمًا واستيراده إلى بيئة عملك على الفور ، مثل هذا:

 import datetime

من أجل حساب فارق التوقيت ، تحتاج إلى إنشاء طوابع زمنية مختلفة. يمكنك اختيار إنشاء:

  • كائنين date ،
  • كائنين time ، أو
  • مزيج من كائنات date time - 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 للحصول على فترة زمنية ، أو فرق الوقت ، و
  • احسب فارق التوقيت بالثواني والدقائق والساعات.

آمل أن تكون قد وجدت هذا البرنامج التعليمي مفيد. الآن بعد أن عرفت كل شيء عن حساب فرق التوقيت في بايثون ، حان الوقت لممارسة مهاراتك.

نتمنى لك الاستمتاع بالتعلم والبرمجة!

تعرف على كيفية كتابة رمز يساوي أو لا يساوي أو اصنع لعبة ثعبان في بيثون هنا.