نزّل التطبيق
اختر مجلدًا واطلب من المساعد قراءة الملفات المعنية قبل تعديلها. حدّد الهدف وحدود المهمة في المحادثة.
أزح التاريخ بمقدار من سالب 366 إلى 366 يوم عمل متجاوزاً نهايات الأسبوع وحتى 1000 عطلة. اختبر الصفر والرجوع وحدود التقويم وارفض التواريخ غير الصالحة دون تغيير العطلات.
اختر مجلدًا واطلب من المساعد قراءة الملفات المعنية قبل تعديلها. حدّد الهدف وحدود المهمة في المحادثة.
اختر نقطة اتصال متوافقة. تعتمد الأدوات المتاحة وجودة الإجابات على النموذج والخادم المستخدمين.
راجع التغييرات ونتائج الأوامر. شغّل فحوص المشروع قبل اعتماد النتيجة؛ الشيفرة المُولّدة ليست مختبرة تلقائيًا.
قارن السلوك الفعلي بالنتيجة المتوقعة. إذا فشل فحص، تحقّق من السبب قبل إجراء تغييرات إضافية.
from datetime import date, timedelta
def working_day_shift(start, days, holidays):
if type(start) is not date or type(days) is not int or not -366 <= days <= 366:
raise ValueError("days.input")
if type(holidays) is not set or len(holidays) > 1000 or any(type(d) is not date for d in holidays):
raise ValueError("days.holidays")
remaining, step = abs(days), 1 if days >= 0 else -1
for _ in range(7*(remaining+len(holidays))+7):
if remaining == 0:
return start
try:
start += timedelta(days=step)
except OverflowError as error:
raise ValueError("days.range") from error
if start.weekday() < 5 and start not in holidays:
remaining -= 1
raise RuntimeError("days.steps")راجع قبل التطبيق. راجع التغييرات ونتائج الأوامر. شغّل فحوص المشروع قبل اعتماد النتيجة؛ الشيفرة المُولّدة ليست مختبرة تلقائيًا.