كيفية حساب فارق التوقيت في بايثون
نشرت: 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
للحصول على فترة زمنية ، أو فرق الوقت ، و - احسب فارق التوقيت بالثواني والدقائق والساعات.
آمل أن تكون قد وجدت هذا البرنامج التعليمي مفيد. الآن بعد أن عرفت كل شيء عن حساب فرق التوقيت في بايثون ، حان الوقت لممارسة مهاراتك.
نتمنى لك الاستمتاع بالتعلم والبرمجة!
تعرف على كيفية كتابة رمز يساوي أو لا يساوي أو اصنع لعبة ثعبان في بيثون هنا.