Python-每隔一周使用if语句进行检查



我有以下if语句:

if date.weekday() != 0:

如何将此if对账单更改为每隔一个星期一(每隔一周一天(检查一次?

提前感谢您的帮助!

您的帖子没有提到您使用的语言。知道这一点会很有用!

无论如何,像weekday这样的函数可能会返回0-6的数字,这不会给你足够的信息。

大多数语言都有一个将日期转换为毫秒值的函数,通常是自1970-01-01 00:00 UTC以来的毫秒。

如果你取这样一个值,除以86400000(一天中的毫秒数(,你就会得到一个日数。第0天(1970年1月1日(恰好是星期四。

在JavaScript中,这一天的数字可以从Date对象中获得,如下所示:

let dayNum = Math.floor(someDate.getTime() / 86400000)

由此,dayNum % 7为您提供了从星期四到星期三的0-6的数字。您可以添加偏移量来更改0的含义。(dayNum + 4) % 7在周日至周六产生0-6。

你希望每隔一周有14天的周期,所以dayNum % 14就是你需要的,然后你只需要决定0到13中的哪个值代表你的目标日期。

取任意一个您想要的日期样本,计算该日期的余数,然后测试该值是否能够匹配任何符合条件的日期。

两个注意事项:

  1. 对于1970年之前的日期,%运算符可能会产生负数。Python是为数不多的不这样做的语言之一。

  2. 与UTC的时区偏移量可能对您的任务很重要。如果这很重要的话,夏令时的变化和/或UTC偏移量的历史变化可能会使事情复杂化。

Python更新:

假设下周一(2021年7月5日(是你们想要的每隔一周的一天。此:

date(2021, 7, 5).toordinal() % 14

产生值8。每隔一个星期一之前或之后也是8点。toordinal()方法直接返回一个日期,而不必为86400000毫秒而烦恼,也不必担心时区偏移。

相关内容

  • 没有找到相关文章

最新更新