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
添加回答
举报