اذهب إلى المحتوى

السؤال

نشر

لديّ تاريخ مكتوب بالصيغة التالية: "10/10/11(m-d-y)"، أريد إضافة خمسة أيام إلى ذلك التاريخ في برنامجي، فكيف أستطيع فعل ذلك؟ لأنني جربت هذا المثال ولم يعمل:

import re
from datetime import datetime

StartDate = "10/10/11"

Date = datetime.strptime(StartDate, "%m/%d/%y")
EndDate = Date.today()+timedelta(days=10)

Recommended Posts

  • 0
نشر

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

from datetime import timedelta
  • 0
نشر

سأشرح كيفية:

  1. إضافة أيام إلى تاريخ محدد.
  2.  إضافة أيام إلى التاريخ الحالي.

من أجل إضافة أيام إلى تاريخ محدد، سيتعين علينا استخدام الوحدة datetime module. في هذه الوحدة هناك العديد من الصفوف المفيدة للتعامل مع التاريخ والوقت. سوف نستخدم الصفوف datetime و timedelta.

مثال:

from datetime import datetime, timedelta
specific_date = datetime(2019, 3, 5)
new_date = specific_date + timedelta(21)
print (new_date)

الخرج:

$ python codespeedy.py
2019-03-26 00:00:00

يمكننا أيضًا استخدام timedelta (days= 21) بدلاً من timedelta (21)، كلاهما سيعطيك نفس النتيجة.

new_date = specific_date + timedelta(21)

يتم استخدام السطر أعلاه لإضافة 21 يوم إلى التاريخ المحدد.

في ()datetime، نمرر تاريخًا محددًا كمعطى للدالة، ثم نضيف الأيام باستخدام عامل التشغيل "+".
للحصول على التاريخ الحالي يمكننا استخدام الكود:

current_date = datetime.today()

أو يمكننا أيضًا استخدام ما يلي:

current_date = datetime.now()

مثال:

from datetime import datetime, timedelta
# الوقت الحال
print(datetime.today()) 
new_date = datetime.today() + timedelta(12)
# طباعة الوقت الحالي بعد الإضافة
print (new_date) 

الخرج:

$ python codespeedy.py
2019-04-08 20:59:26.580545
2019-04-20 20:59:26.581544

 

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...