首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在批处理文件中更改星期日或星期六的日期

如何在批处理文件中更改星期日或星期六的日期
EN

Stack Overflow用户
提问于 2022-11-23 18:11:41
回答 1查看 32关注 0票数 0

我必须在命令行中运行python脚本,并将日期作为参数传递,下面是运行日期的命令

代码语言:javascript
复制
parser = argparse.ArgumentParser()
parser.add_argument('date')
tdate= parser.parse_args().date

我想换一下这个,看看是星期天还是星期六。如果是星期六,日期应该是日期-1,如果是星期天,则应该是日期-2。

我试着在蟒蛇中得到周末--如果是5,我会把它当作星期六,如果是6,那就是周日。

代码语言:javascript
复制
#this code is in python getting today() weekday()
weekno = datetime.datetime.today().weekday()
if weekno==5:
    tdate= parser.parse_args().date-1
elif weekno==6:
    tdate= parser.parse_args().date-2
else:
    tdate= parser.parse_args().date

我在这段代码中遗漏了一些东西。有人能帮帮我吗?

EN

回答 1

Stack Overflow用户

发布于 2022-11-23 20:43:34

如果我的理解是正确的,您希望这样,如果当前的日期是星期六或星期日,那么作为命令行参数传递的输入日期应该是date -1 daydate -2 days.

因此,如果今天的日期在星期一-星期五通过(11/23/2022),它将返回原来的日期,但如果在星期六通过同样的日期,它将返回11/22/2022。

要执行从当前日期减去天数的操作,您需要use time delta

这是我的解决方案,基于我对你要求的假设。

代码语言:javascript
复制
import argparse
from datetime import datetime, timedelta

parser = argparse.ArgumentParser()
parser.add_argument('date')
passed_in_date = parser.parse_args().date

tdate = datetime.strptime(passed_in_date, "%m/%d/%Y")


weekno = datetime.today().weekday()
print(f"weekno of today is: {weekno}")
if weekno==5:
    tdate = tdate - timedelta(days=1)
elif weekno==6:
    tdate = tdate - timedelta(days=2)


print(tdate.date())

OutPut

代码语言:javascript
复制
#running on a Wednesday (for example) date returns same as passed
python .\date.py 11/26/2022
weekno of today is: 2
2022-11-26

#example for testing if running on a sunday
python .\date.py 11/23/2022
weekno of today is: 6
2022-11-21

如果您希望看到日期的更改,只需手动将weekno设置为5或6进行测试。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74551335

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档