2024-06-24 12:03:13 发布
网友
我不习惯使用datetime
来自yyyymm(int)中的输入
input = 202003
我想创建一个函数,将其转换为该月第一天和最后一天的int变量yyyymmdd,在本例中:
start = 20200301 end = 20200331
谢谢
您可以使用日历包:
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,但我建议使用字符串来处理日期时间
代码:
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)
例如:
如果输入string为202003,则输出为
string
202003
start: 2020-03-01 end: 2020-03-31
如果输入string为202002,则输出为
202002
start: 2020-02-01 end: 2020-02-29
如果输入string为202012,则输出为
202012
start: 2020-12-01 end: 2020-12-31
您可以使用日历包:
这里的输入是int,但我建议使用字符串来处理日期时间
代码:
例如:
如果输入
string
为202003
,则输出为如果输入
string
为202002
,则输出为如果输入
string
为202012
,则输出为相关问题 更多 >
编程相关推荐