在Python中如何从int中减去日期字符串?

2024-09-29 02:27:06 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图在python中减去一个日期字符串,但遇到了这个错误陷阱

if intDay >= 28:
    m0weekbeg = str(wendMonth) + "/16/" + str(wendYear)
    weekBegDay = "16"
    weekEndDay = str(intDay)

dteStartDate = m0weekbeg
mstartdate = m0weekbeg 
mstopdate = m0weekend
cnt= 0
int(cnt)
dteStartDate =datetime.strptime(dteStartDate,'%m/%d/%Y')
startDay = str(dteStartDate.day)
while startDay != 2:
    cnt = cnt+1
    dteStartDate = m0weekbeg-cnt

错误:

  File "C:\Python37-32\pr_import.py", line 242, in proceed
    dteStartDate = m0weekbeg-cnt
TypeError: unsupported operand type(s) for -: 'str' and 'int'

Tags: 字符串if错误int陷阱strcntstartday
1条回答
网友
1楼 · 发布于 2024-09-29 02:27:06

m0weekbeg是一个字符串,不能从str中减去int:

if intDay >= 28:
    m0weekbeg = datetime.date(wendYear, wendMonth, 16)#<<<<<<<<<<<<<<<
    weekBegDay = "16"
    weekEndDay = str(intDay)

dteStartDate = m0weekbeg.strftime('%m/%d/%Y')
mstartdate = m0weekbeg.strftime('%m/%d/%Y')
mstopdate = m0weekend
cnt= 0
int(cnt)
dteStartDate =datetime.strptime(dteStartDate,'%m/%d/%Y')
startDay = str(dteStartDate.day)
while startDay != 2:
    cnt = cnt+1
    dteStartDate = m0weekbeg-datetime.timedelta(days=cnt)#<<<<<<<<<<<<<<

但是这个代码看起来真的很糟糕。我认为重写它会是一个更好的主意,而不是一句一句地翻译它

相关问题 更多 >