البرمجة

مقارنة التواريخ في Python: دليل شامل

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

لمقارنة تاريخ محدد مثل ‘2016-06-10 12:28:36.697’ مع الوقت الحالي باستخدام datetime.now، يجب أولاً تحويل السلسلة الممثلة للتاريخ المحدد إلى كائن من نوع datetime. يمكن القيام بذلك باستخدام دالة datetime.strptime() التي تقوم بتحويل سلسلة النص إلى كائن datetime.

ثم يمكن مقارنة التاريخ المحدد بتاريخ الوقت الحالي باستخدام العمليات القياسية للمقارنة مثل الأساوي (==)، أو أكبر من (>)، أو أصغر من (<)، وما إلى ذلك.

إليك كيفية القيام بذلك بالتفصيل في Python:

python
from datetime import datetime # تاريخ محدد varA = '2016-06-10 12:28:36.697' # تحويل سلسلة النص إلى كائن datetime varA_datetime = datetime.strptime(varA, '%Y-%m-%d %H:%M:%S.%f') # الحصول على التاريخ والوقت الحالي now = datetime.now() # مقارنة التاريخ المحدد مع التاريخ الحالي if varA_datetime.date() == now.date(): print("نفس التاريخ") else: print("تاريخ مختلف") # مقارنة التاريخ المحدد إذا كان قبل أو بعد الوقت الحالي if varA_datetime < now: print("قبل الوقت الحالي") elif varA_datetime > now: print("بعد الوقت الحالي") else: print("نفس الوقت")

هذا الكود يقوم بتحويل تاريخ ‘2016-06-10 12:28:36.697’ إلى كائن datetime، ثم يقارنه مع التاريخ الحالي. يتم مقارنة الأيام فقط دون السنة، حيث يتم استخدام الدالة .date() للحصول على التاريخ فقط.

وبالتالي، يتم تحديد ما إذا كان التاريخ المحدد يتطابق مع التاريخ الحالي أم لا، وما إذا كان قبل أو بعد الوقت الحالي.

المزيد من المعلومات

بالطبع، دعنا نستمر في توسيع المقال لنقدم مزيدًا من الشرح والتفاصيل حول كيفية مقارنة التواريخ في Python.

بمجرد قيامنا بتحويل تاريخ محدد إلى كائن datetime والحصول على التاريخ والوقت الحالي، يمكننا استخدام العمليات القياسية للمقارنة لاتخاذ القرارات اللازمة بناءً على النتائج.

لتوضيح أكثر، دعنا نتطرق إلى بعض الحالات الشائعة التي يمكن أن تواجه المطورين عند مقارنة التواريخ:

1. مقارنة التواريخ بالدقة الكاملة:

في البعض من الحالات، قد نرغب في مقارنة التواريخ بالدقة الكاملة، بما في ذلك السنة والشهر واليوم والساعة والدقيقة والثانية وحتى الجزء الصغير من الثانية. في هذه الحالة، يمكن استخدام العمليات القياسية للمقارنة مثل الأساوي (==) بين الكائنات datetime.

2. مقارنة التواريخ بدون السنة:

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

3. مقارنة التواريخ بدون التوقيت:

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

4. مقارنة التواريخ بالمناطق الزمنية المختلفة:

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

لنضيف بعض الأمثلة لتوضيح هذه الحالات:

مقارنة التواريخ بالدقة الكاملة:

python
from datetime import datetime # تاريخ محدد varA = '2016-06-10 12:28:36.697' # تحويل سلسلة النص إلى كائن datetime varA_datetime = datetime.strptime(varA, '%Y-%m-%d %H:%M:%S.%f') # الحصول على التاريخ والوقت الحالي now = datetime.now() # مقارنة التواريخ بالدقة الكاملة if varA_datetime == now: print("نفس التاريخ والوقت") else: print("تواريخ مختلفة")

مقارنة التواريخ بدون السنة:

python
# مقارنة التواريخ بدون السنة if (varA_datetime.month, varA_datetime.day, varA_datetime.time()) == (now.month, now.day, now.time()): print("نفس اليوم والوقت") else: print("أيام مختلفة")

مقارنة التواريخ بدون التوقيت:

python
# مقارنة التواريخ بدون التوقيت if (varA_datetime.year, varA_datetime.month, varA_datetime.day) == (now.year, now.month, now.day): print("نفس التاريخ") else: print("تواريخ مختلفة")

مقارنة التواريخ في مناطق زمنية مختلفة:

python
import pytz # تحديد المناطق الزمنية tz_utc = pytz.utc tz_local = pytz.timezone('Africa/Cairo') # تحويل التواريخ إلى المنطقة الزمنية المحددة varA_datetime_utc = tz_local.localize(varA_datetime).astimezone(tz_utc) now_utc = tz_local.localize(now).astimezone(tz_utc) # مقارنة التواريخ في المناطق الزمنية المختلفة if varA_datetime_utc == now_utc: print("نفس التاريخ والوقت بتوقيت UTC") else: print("تواريخ مختلفة")

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

مقالات ذات صلة

زر الذهاب إلى الأعلى
إغلاق

أنت تستخدم إضافة Adblock

يرجى تعطيل مانع الإعلانات حيث أن موقعنا غير مزعج ولا بأس من عرض الأعلانات لك فهي تعتبر كمصدر دخل لنا و دعم مقدم منك لنا لنستمر في تقديم المحتوى المناسب و المفيد لك فلا تبخل بدعمنا عزيزي الزائر