为了账号安全,请及时绑定邮箱和手机立即绑定

日期时间函数,将 yyyymm 输入转换为月的开始和结束日期输出

日期时间函数,将 yyyymm 输入转换为月的开始和结束日期输出

收到一只叮咚 2022-09-20 17:14:45
我是使用日期时间的新手从 yyyymm(整数)的输入input = 202003我想创建一个函数,将其转换为该月第一天和最后几天的int变量yyyymmdd,在本例中:start = 20200301 end =  20200331谢谢
查看完整描述

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,但我建议使用字符串来处理日期时间


查看完整回答
反对 回复 2022-09-20
?
缥缈止盈

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


查看完整回答
反对 回复 2022-09-20
  • 2 回答
  • 0 关注
  • 97 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信