# 这是原油日度,周度,月度的预测,脚本
# 遍历时间,跳过周六日,每日7点开始预测

import datetime
import subprocess
import time


def run_predictions(target_date):
    """执行三个预测脚本"""
    scripts = [
        "main_yuanyou.py",
        "main_yuanyou_zhoudu.py",
        "main_yuanyou_yuedu.py"
    ]

    # 合并命令为单个进程执行
    command = ["python"]
    command.extend(scripts)
    subprocess.run(command, check=True)


def is_weekday(date):
    """判断是否为工作日(周一到周五)"""
    return date.weekday() < 5  # 0-4 为周一到周五


if __name__ == "__main__":
    start_date = datetime.date(2025, 3, 13)
    end_date = datetime.date(2100, 12, 31)

    current_date = start_date
    while current_date <= end_date:
        if is_weekday(current_date):
            # 等待到目标日期的7点
            target_time = datetime.datetime.combine(
                current_date, datetime.time(9, 40))
            while datetime.datetime.now() < target_time:
                time.sleep(60)  # 每分钟检查一次
                print(f"等待到 {target_time} 开始执行任务")

            print(f"开始执行 {current_date} 的预测任务")
            run_predictions(current_date)

        current_date += datetime.timedelta(days=1)