有了python,我怎么能从星期三开始,而不是星期天或星期一?

2024-09-21 00:53:40 发布

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

我正在使用gmtime, strftime and datetime.

为了提供上下文,我正在设置一个随叫随到的时间表,并允许人们轻松地切换随叫随到的时间表,我编写了一个脚本来更改xml文件以实现这一点。为了让每个待命的人都能轻松一点,我设置了脚本,这样你就可以问一个特定日期的周数是多少。大多数内置功能都使用星期天或星期一作为开始日期,这不是我需要的

有关职能:

我知道%U从星期天开始,我只需要一个变通办法,这样就可以计算出它从星期三开始

`#option 2
def getWeek():
    print("\n\n")
    date = input("Enter the date you want the week number of (MM DD YYYY): ")
    if(len(date) != 10):
        print("You typed it in wrong. Try it again.")
        getWeek()
    else:
        d = time.strptime(date, "%m %d %Y")
        print(strftime("%U" + 2, d))`

Tags: and文件the脚本datetimedateitxml
1条回答
网友
1楼 · 发布于 2024-09-21 00:53:40

你为什么不自己手动计算一周 基本算法:

  • 获取当前日期
  • 调回最近的星期三(或任何你想要的日子)
  • 除以7+1=周#(假设第一个部分周为0)

在代码中:

>>> wednesday = 3    # sunday = 0, monday = 1, etc.
>>> week_no = lambda d: (d.tm_yday - (d.tm_wday-wednesday)%7) // 7 + 1
>>> week_no(time.strptime("10 06 2016", "%m %d %Y")) # Thursday
41
>>> week_no(time.strptime("10 04 2016", "%m %d %Y")) # Tuesday
40

健全性检查:

>>> time.strftime("%U", time.strptime("10 06 2016", "%m %d %Y"))
'40'
>>> time.strftime("%U", time.strptime("10 04 2016", "%m %d %Y"))
'40'

相关问题 更多 >

    热门问题