0
سبد خرید من 0 دوره
سبد خرید شما خالیست :(
پرسش

چطور می‌تونم آخرین روز ماه رو در پایتون پیدا کنم؟

How can I get the last day of the month in Python?

چطور می‌تونم آخرین روز هر ماه رو توی پایتون پیدا کنم؟ فرض کن یه تاریخ خاصی دارم، حالا می‌خوام بدونم آخرین روز اون ماه دقیقاً چه روزی هست. باید از چه روشی استفاده کنم؟

1403/06/07
پاسخ
رضا دولتی عاشق برنامه نویسی و هوش مصنوعی!
بیوگرافی رضا دولتی

برای اینکه بتونی آخرین روز هر ماه رو توی پایتون پیدا کنی، می‌تونی از ماژول calendar یا datetime استفاده کنی. این دو روش رایج و ساده‌ان. من هر دو روش رو برات توضیح میدم.

روش اول: استفاده از ماژول calendar

ماژول calendar یک تابع داره به اسم monthrange که می‌تونی ازش برای پیدا کردن تعداد روزهای یه ماه استفاده کنی. این تابع دو تا مقدار بهت برمی‌گردونه: اولین روز هفته‌ی ماه و تعداد روزهای اون ماه. با استفاده از این تابع می‌تونی آخرین روز ماه رو پیدا کنی:

import calendar
from datetime import datetime
# Get today's date
today = datetime.today()
# Get the last day of the current month
last_day = calendar.monthrange(today.year, today.month)[1]
print(f"The last day of this month is: {last_day}")

روش دوم: استفاده از ماژول datetime

اگه می‌خوای به صورت مستقیم‌تر با تاریخ کار کنی، می‌تونی از ماژول datetime استفاده کنی. برای این کار، از timedelta استفاده می‌کنی که یه روز از اول ماه بعدی کم می‌کنه و تاریخ آخرین روز ماه رو بهت میده:

from datetime import datetime, timedelta
# Get today's date
today = datetime.today()
# Get the first day of the next month
first_day_next_month = datetime(today.year, today.month + 1, 1)
# Get the last day of the current month by subtracting one day
last_day = first_day_next_month - timedelta(days=1)
print(f"The last day of this month is: {last_day.day}")

هر دو روش کار می‌کنن و بستگی داره به اینکه توی کدت کدوم به دردت بخوره. روش اول ساده‌تره و سریع‌تر می‌تونی به جواب برسی، ولی اگه تاریخ‌های پیچیده‌تری داری، روش دوم ممکنه بیشتر به کارت بیاد.

توی این مثال‌ها، اگر بخوای آخرین روز ماه دیگه‌ای رو پیدا کنی، کافیه سال و ماه مورد نظرت رو به جای today.year و today.month توی کد بذاری.

پاسخ: 1403/06/07
آخرین آپدیت: 1403/08/15