You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何计算自epoch以来已经过去的完整工作日(排除周末)数量

实现逻辑说明

你只需要在原有计算逻辑的基础上,加上剩余不满一周天数的工作日统计即可,核心逻辑如下:

  1. 先计算当前已经完整度过的自然天数 total_days
  2. 按完整周计算基础工作日:每完整周固定贡献5个工作日
  3. 利用1970年1月1日为周四的前提,做剩余天数的工作日映射统计,直接查表得到额外工作日数量
完整可运行代码
from time import time

def count_passed_workdays():
    secs = time()
    total_days = int(secs // (24 * 60 * 60))
    # 完整周贡献的工作日
    full_weeks = total_days // 7
    workdays = full_weeks * 5
    # 剩余天数对应的工作日映射表,索引为剩余天数,值为对应工作日数量
    # 剩余天数从0开始,对应过完的天数依次为周四、周五、周六、周日、周一、周二、周三
    rem_lookup = [0, 1, 2, 2, 2, 3, 4]
    remainder = total_days % 7
    workdays += rem_lookup[remainder]
    return workdays

print(count_passed_workdays())
规则验证

我们可以用你给出的规则做正确性校验:

  • 假设周五当天未结束时,已度过的天数里包含前一天周四,返回结果2000
  • 周五过完进入周六时,total_days加1,查表得额外增加1个工作日,结果变为2001,符合要求
  • 周六、周日过完进入周一的时候,total_days共增加2次,但两次查表都不会增加工作日计数,结果保持2001
  • 周一过完进入周二时,total_days再加1,查表额外增加1个工作日,结果变为2002,完全符合规则

内容的提问来源于stack exchange,提问作者Muhammad Usman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.23 20:36:02