Pandas系列|第八期:两个日期之间有多少个自然星期,以及每个自然星期的天数

1.两个日期之间有多少个自然星期,以及每个自然星期的天数

背景:计算排产计划中的产能时,每个周期的产能是按照总的供应量展开到供应开始日期至供应结束日期之间的每个周期而得到的。具体的计算公式是:每个周期(1个自然星期算1个周期)的产能=每个自然星期的天数*日供应量。

关键点:求两个日期之间有多少个自然星期,以及每个自然星期的天数。涉及函数start_date.weekday()计算某个日期类型的值是星期几(返回值0,1,2,3,4,5,6分别代表星期一到星期日)

【自然周:从周一开始到周天结束】

start_date = pd.to_datetime('20240101')
end_date = pd.to_datetime('20240827')

def get_days_list(start_date, end_date):
    # 计算两个日期之间的天数差
    delta = (end_date - start_date).days

    if delta < 7:
        num_weeks = 1
        week_days = [delta + 1]
        return num_weeks, week_days

    # 计算第一个自然周的天数
    first_week_days = 7 - start_date.weekday()
    if first_week_days == 7:
        first_week_days = 0

    # 计算最后一个自然周的天数
    last_week_days = end_date.weekday() + 1

    # 计算自然周的数量
    num_weeks = (delta - first_week_days - last_week_days) // 7 + 3

    # 计算每个自
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值