2 回答

TA貢獻1827條經驗 獲得超9個贊
您可以使用日歷包:
import calendar
def get_start_end_month(input_):
input_ = str(input_)
year = int(input_[:4])
month = int(input_[4:])
start = int(input_+"01")
end = int(input_+str(calendar.monthrange(year, month)[1]))
return start, end
這里的輸入是一個int,但我建議使用字符串來處理日期時間

TA貢獻2041條經驗 獲得超4個贊
法典:
from datetime import datetime, date, timedelta
string = "202003" #--> Your input string
start = datetime.strptime(string, "%Y%m").date()
nextmonth = 1 if start.month == 12 else start.month + 1 # --> if current month is 12 cycle to 1
year = start.year + 1 if nextmonth == 1 else start.year
end = date(year, nextmonth, 1) - timedelta(days=1)
print("start:", start)
print("end:", end)
例如:
如果輸入是輸出將是,string202003
start: 2020-03-01
end: 2020-03-31
如果輸入是輸出將是,string202002
start: 2020-02-01
end: 2020-02-29
如果輸入是輸出將是,string202012
start: 2020-12-01
end: 2020-12-31
添加回答
舉報