如何让程序休眠至次日?代码休眠后无法继续运行的问题
问题分析与解决
你这段代码的核心问题是未处理日期边界场景:如果当前日期是当月最后一天(比如1月31日、4月30日),currentDate.day +1会超过当月最大天数,创建future对象时直接抛出ValueError,程序崩溃后自然无法继续执行。
修正方案
改用datetime.timedelta来计算次日零点,无需手动处理月/年的边界问题,代码更健壮:
import datetime import time current_date = datetime.datetime.now() # 先获取当天零点,再加1天得到次日零点 next_day = current_date.replace(hour=0, minute=0, second=0, microsecond=0) + datetime.timedelta(days=1) # 计算等待秒数并休眠 time.sleep((next_day - current_date).total_seconds()) # 休眠结束后,后续代码会正常执行 print("已进入次日,继续运行逻辑")
说明
replace(hour=0, ...)把当前时间重置为当天0点,避免因当前时间在次日零点前的不同时段导致计算误差timedelta(days=1)会自动处理跨月、跨年的情况,比如1月31日加1天会自动转为2月1日,不会触发日期越界异常
内容的提问来源于stack exchange,提问作者Goldfish
相关产品推荐
相关产品推荐

