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

Python实现两函数每7天交替执行的技术方案咨询

解决方案思路与代码示例

核心逻辑

  • 计算当前日期与**起始日(当年9月5日)**的天数间隔,将间隔除以7向下取整得到周数
  • 周数为偶数(含0)时执行upper函数,奇数时执行lower函数
  • 先判断当前日期是否在有效周期内:即当年9月5日 ≤ 当前日期 ≤ 次年6月30日,超出范围则跳过执行

代码实现(Python)

import datetime
import time

def upper():
    print(f"{datetime.datetime.now()} 执行upper函数")

def lower():
    print(f"{datetime.datetime.now()} 执行lower函数")

def get_target_year():
    # 处理跨年场景,确定周期的起始年和结束年
    today = datetime.date.today()
    sep_5 = datetime.date(today.year, 9, 5)
    if today >= sep_5:
        start_year = today.year
        end_year = today.year + 1
    else:
        start_year = today.year - 1
        end_year = today.year
    return start_year, end_year

def should_run():
    # 检查当前日期是否在有效周期内
    today = datetime.date.today()
    start_year, end_year = get_target_year()
    start_date = datetime.date(start_year, 9, 5)
    end_date = datetime.date(end_year, 6, 30)
    return start_date <= today <= end_date

def get_current_function():
    # 判断当前应执行的函数
    today = datetime.date.today()
    start_year, _ = get_target_year()
    start_date = datetime.date(start_year, 9, 5)
    days_diff = (today - start_date).days
    week_num = days_diff // 7
    return upper if week_num % 2 == 0 else lower

def main():
    # 持续运行逻辑,每天检查一次
    while True:
        if should_run():
            target_func = get_current_function()
            target_func()
        time.sleep(24 * 60 * 60)

if __name__ == "__main__":
    main()

关键细节说明

  • get_target_year函数自动适配跨年情况,确保周期判断准确
  • 主循环每天执行一次检查,避免不必要的资源消耗
  • 周数从0开始计数,完全匹配你给出的示例周期(9.5-9.11为第0周,执行upper)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 14:45:33