یک برنامه پایتون بنویس که زمان فعلی را بگیرد، دو زمان را بهعنوان ورودی از کاربر با فرمت "YYYY-MM-DD HH:MM:SS" دریافت کند، مدت زمان بین آنها را بر حسب ثانیه و با قالب روز:ساعت:دقیقه:ثانیه محاسبه کند و سپس با یک گام زمانی ثانیهای مشخص، فهرستی از برچسبهای زمانی (timestamps) بین آن دو تولید و چاپ کند
2.0 بازدید آخرین ویرایش در 223 روز قبل ساعت 01:04 0.0
برای حل این سوال از ماژول datetime پایتون استفاده کنید: ورودیها را با datetime.strptime پارس کنید، اختلاف را با تفریق بهدست آورید و با total_seconds() مقدار ثانیهای را محاسبه کنید؛ برای قالببندی از timedelta و تقسیمبندی ثانیهها به روز/ساعت/دقیقه/ثانیه کمک بگیرید. برای تولید توالی زمانی، یک حلقه بسازید که با افزایش start بهاندازه timedelta(seconds=step) تا رسیدن به end پیش برود؛ نکات مفید: ورودیها را با try/except بررسی کنید، اگر end قبل از start بود آنها را جابهجا یا پیام خطا بدهید، و اگر گام بزرگتر از فاصله باشد فقط زمان شروع را چاپ کنید.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
برای این کار بهتر است ورودیها را با یک بلوک try/except parsing کنید تا خطاهای کاربر در تاریخ/زمان مشخص شود. اگر end قبل از start باشد یا فاصلهی زمانی غیرمعقول باشد، بهسادگی یک پیام خطا بدهید یا ورودیها را اصلاح کنید. برای چاپ قالب روز:ساعت:دقیقه:ثانیه میتوانید total_seconds() را با تقسیمبندی و استفاده از divmod به روز، ساعت، دقیقه و ثانیه تبدیل کنید. برای تولید فهرست زمانها با گام ثانیهای از حلقهای استفاده کنید که با اضافه کردن timedelta(seconds=step) مقدار current را بهروزرسانی میکند و تا رسیدن به end ادامه میدهد؛ اگر گام از فاصله کمتر است، همهی مقادیر را چاپ کنید و اگر گام بزرگتر از فاصله باشد فقط زمان آغاز را نمایش دهید.
گزارش