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

我是使用日期时间的新手

从 yyyymm(整数)的输入

input = 202003

我想创建一个函数,将其转换为该月第一天和最后几天的int变量yyyymmdd,在本例中:

start = 20200301
end =  20200331

谢谢


收到一只叮咚
浏览 104回答 2
2回答

素胚勾勒不出你

您可以使用日历包:import calendardef 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,但我建议使用字符串来处理日期时间

缥缈止盈

法典:from datetime import datetime, date, timedeltastring = "202003" #--> Your input stringstart = datetime.strptime(string, "%Y%m").date()nextmonth = 1 if start.month == 12 else start.month + 1 # --> if current month is 12 cycle to 1year = start.year + 1 if nextmonth == 1 else start.yearend = date(year, nextmonth, 1) - timedelta(days=1)print("start:", start)print("end:", end)例如:如果输入是输出将是,string202003start: 2020-03-01end: 2020-03-31如果输入是输出将是,string202002start: 2020-02-01end: 2020-02-29如果输入是输出将是,string202012start: 2020-12-01end: 2020-12-31
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python