Python:接下来几个月的工作日位置

发布于 2024-11-29 05:22:47 字数 75 浏览 0 评论 0原文

给定一个日期,您如何知道该月的工作日位置(例如:该月的第三个星期二)以及如何获取下个月同一工作日的日期(例如:该月的第三个星期二+1)?

Given a date, how do you know the weekday position in the month (ex: third tuesday of the month) and how do you get the date for the same weekday for the next month (ex: third tuesday of the month+1)?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

顾忌 2024-12-06 05:22:47

查看 datetime 模块。具体来说, 日期
目的。 isocalendar 可能也会有帮助。

Take a look at the datetime module. Specifically the weekday method of the date
object. isocalendar might be helpful too.

许你一世情深 2024-12-06 05:22:47

在下面的示例中,d 是一个 datetime.date 对象。

要获取当月内某天的“索引”,请使用

def weekday_index(d):
    return (d.day + 6) // 7

此公式的工作方式与日期实际是哪一天无关。要获得下个月内具有相同工作日索引的同一工作日的那一天,最简单的方法似乎是

d_next = d + datetime.timedelta(weeks=4)
if weekday_index(d_next) < weekday_index(d):
    d_next += datetime.timedelta(weeks=1)

这使用了您要查找的日期是 d.

In the examples below, d is a datetime.date object.

To get the "index" of the day within the current month, use

def weekday_index(d):
    return (d.day + 6) // 7

This formula will work independent of what weekday the date actually is. To get the day wich is the same weekday with the same weekday index within the next month, the simplest way seems to be

d_next = d + datetime.timedelta(weeks=4)
if weekday_index(d_next) < weekday_index(d):
    d_next += datetime.timedelta(weeks=1)

This uses the fact the the date you are looking for is either 4 weeks or 5 weeks after d.

伏妖词 2024-12-06 05:22:47

看看 dateutil

Have a look at dateutil

我是男神闪亮亮 2024-12-06 05:22:47
import datetime
cnt=1
d=datetime.datetime.now()
d1=datetime.datetime(d.year,d.month,1,d.hour,d.minute,d.second,d.microsecond)
while(d1.day!=d.day):
  if 6-d1.weekday()==1:cnt=cnt+1
  d1=d1+datetime.timedelta(days=1)
print cnt #print current date week position
import datetime
cnt=1
d=datetime.datetime.now()
d1=datetime.datetime(d.year,d.month,1,d.hour,d.minute,d.second,d.microsecond)
while(d1.day!=d.day):
  if 6-d1.weekday()==1:cnt=cnt+1
  d1=d1+datetime.timedelta(days=1)
print cnt #print current date week position
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文