این برنامه یک عدد صحیح بین ۱ تا ۳۶۵ را از کاربر دریافت میکند که نشاندهنده شماره روز در سال شمسی است.
سپس با استفاده از ساختارهای شرطی و لیستهای ماهها، مشخص میکند که این روز در کدام فصل، کدام ماه و چه روزی از آن ماه قرار دارد.
def get_date_info(day_of_year):
months = [
("فروردین", 31), ("اردیبهشت", 31), ("خرداد", 31),
("تیر", 31), ("مرداد", 31), ("شهریور", 31),
("مهر", 30), ("آبان", 30), ("آذر", 30),
("دی", 30), ("بهمن", 30), ("اسفند", 29)
]
seasons = {
"فروردین": "بهار", "اردیبهشت": "بهار", "خرداد": "بهار",
"تیر": "تابستان", "مرداد": "تابستان", "شهریور": "تابستان",
"مهر": "پاییز", "آبان": "پاییز", "آذر": "پاییز",
"دی": "زمستان", "بهمن": "زمستان", "اسفند": "زمستان"
}
remaining = day_of_year
for name, length in months:
if remaining <= length:
season = seasons[name]
return season, name, remaining
remaining -= length
return None, None, None # در صورت ورودی نامعتبر
# اجرای برنامه
day = int(input("شماره روز سال را وارد کنید (۱ تا ۳۶۵): "))
season, month, day_in_month = get_date_info(day)
if season:
print(f"روز {day} سال، فصل {season}، ماه {month} و روز {day_in_month} این ماه است.")
else:
print("شماره روز نامعتبر است.")
روز 35 سال، فصل بهار، ماه اردیبهشت و روز 4 این ماه است.
- ابتدا شماره روز سال از کاربر دریافت میشود
- لیستی از ماهها و تعداد روزهای هر ماه تعریف شده است
- با کم کردن تعداد روزهای هر ماه از عدد ورودی، مشخص میشود که روز موردنظر در کدام ماه قرار دارد
- با استفاده از دیکشنری، فصل مرتبط با ماه نیز تعیین میشود
- خروجی نهایی شامل فصل، نام ماه و شماره روز در آن ماه است