美文网首页
计算某年某月的第三个周五日期

计算某年某月的第三个周五日期

作者: 一本正经胡说八道的猫 | 来源:发表于2022-03-14 07:16 被阅读0次

一本正经胡说八道的猫


因为数据处理需要,有这个需求。
用两种方法,涉及“datetime.timedelta”和“dateutil.relativedelta.relativedelta”的操作。
查看了区别:

Definition:   datetime.timedelta([days[, seconds[, microseconds[, 
milliseconds[, minutes[, hours[, weeks]]]]]]])

Definition:   relativedelta.relativedelta(self, dt1=None, dt2=None,
years=0, months=0, days=0, leapdays=0, weeks=0, hours=0, minutes=0,
seconds=0, microseconds=0, year=None, month=None, day=None,
weekday=None, yearday=None, nlyearday=None, hour=None, minute=None,
second=None, microsecond=None)

方法一:
用datetime.weekday加 datetime.timedelta
先用for循环算出月头哪天为周五,然后在该日期基础上加两周得到日期

import datetime
def pay_day(y, m, weekday):
    for d in range(1, 8):
        if datetime.date(int(y), int(m), d).weekday() == weekday:
            date = datetime.date(int(y), int(m), d)    
    return  date + datetime.timedelta(weeks=2)
 #return  date + datetime.timedelta(days=14)加14天也可以

显示结果:

[In]
for i in range(1,13):
    print(pay_day(2022,i,4))
[Out]
2022-01-21
2022-02-18
2022-03-18
2022-04-15
2022-05-20
2022-06-17
2022-07-15
2022-08-19
2022-09-16
2022-10-21
2022-11-18
2022-12-16

方法二:
用dateutil.relativedelta.relativedelta

def pay_days(y, m, x):
    return datetime.date(y,m, 1)+relativedelta.relativedelta(day = 0, weekday = relativedelta.FR(x))
[In]
for i in range(1,13):
    print(pay_days(2022,i,3))
[Out]
2022-01-21
2022-02-18
2022-03-18
2022-04-15
2022-05-20
2022-06-17
2022-07-15
2022-08-19
2022-09-16
2022-10-21
2022-11-18
2022-12-16

两种方法都能快速算出,用时都是6ms。
不过方法二的代码更加简洁,我更喜欢用。

相关文章

  • 计算某年某月的第三个周五日期

    一本正经胡说八道的猫 因为数据处理需要,有这个需求。用两种方法,涉及“datetime.timedelta”和“d...

  • 亲子践行打卡43/90天

    打卡日期:2019年4月12日周五 第三个30天践行打卡:4/30 宣言❤用心沟通,用爱陪伴❤ ✌妈妈第三个30天...

  • 日期的计算

    iOS - 获取当前日期的前几个月或后几个月[https://www.jianshu.com/p/944b8fe7...

  • 计算日期

    function ChooseType(date, n) { var str = date; // 转换文本的日期...

  • iOS计算N个工作日之后的日期和计算N个月之后的日期

    项目需要 计算3个工作日之后的日期和N(用户输入)个月之后的日期 先看计算N个月之后的日期 如果需要计算的日期的前...

  • 【MySQL】的日期计算

    数据分析写起sql真的很烦啊。尤其是遇到各种日期计算。这里总结了一些MySQL中的常用日期计算,希望给和我一样的s...

  • mysql (5)

    Mysql 函数 日期计算 MySQL提供了几个函数,可以用来计算日期,例如,计算年龄或提取日期部分。要想确定每个...

  • python计算两个日期的天数计算多少岁

    计算出生日期天数,计算两个日期之间天数,计算多少岁,获取两个日期之间的日期列表 安装datedays: 结果: 点...

  • 28、日期函数:DATEDIF2018-10-18

    一、基本用法 DATEDIF(起始日期,终止日期,间隔单位),计算2个日期的间隔 二、计算工龄 =DATEDIF(...

  • 3.3 日期计算

    MySQL提供了几个函数,可以用来计算日期,例如,计算年龄或提取日期部分。要想确定每个宠物有多大,可以计算当前日期...

网友评论

      本文标题:计算某年某月的第三个周五日期

      本文链接:https://www.haomeiwen.com/subject/nhfddrtx.html