from datetime import datetime, timedelta


def 距今秒数(时间字符串: str) -> float | None:
    """计算某个时间距离现在还差多少秒。

    功能说明:
        - 这个函数用于比较一个目标时间和当前系统时间之间的秒数差。
        - 如果目标时间在未来，返回正数；如果目标时间已经过去，返回负数。
        - 适合做倒计时、超时提醒、任务剩余时间判断。
        - 输入格式不正确时，函数返回 ``None``。

    Args:
        时间字符串: 要比较的时间字符串，格式为 ``YYYY-MM-DD HH:MM:SS``。

    Returns:
        成功时返回秒数差；失败时返回 ``None``。
    """
    try:
        给定时间 = datetime.strptime(时间字符串.strip(), "%Y-%m-%d %H:%M:%S")
        当前时间 = datetime.now()
        return (给定时间 - 当前时间).total_seconds()
    except Exception:
        return None


if __name__ == "__main__":
    未来时间 = (datetime.now() + timedelta(seconds=60)).strftime("%Y-%m-%d %H:%M:%S")
    过去时间 = (datetime.now() - timedelta(seconds=60)).strftime("%Y-%m-%d %H:%M:%S")
    当前时间 = datetime.now().strftime("%Y-%m-%d %H:%M:%S")

    print("===== 示例1：目标时间在未来 60 秒左右 =====")
    print("结果:", 距今秒数(未来时间))

    print("\n===== 示例2：目标时间在过去 60 秒左右 =====")
    print("结果:", 距今秒数(过去时间))

    print("\n===== 示例3：目标时间就是当前时间附近 =====")
    print("结果:", 距今秒数(当前时间))

    print("\n===== 示例4：输入错误格式 =====")
    print("结果:", 距今秒数("2026/03/20 10:00:00"))

    print("\n===== 示例5：输入空字符串 =====")
    print("结果:", 距今秒数(""))

    print("\n===== 示例6：应用场景-判断秒杀开始前还剩多少秒 =====")
    秒杀开始时间 = (datetime.now() + timedelta(minutes=5)).strftime("%Y-%m-%d %H:%M:%S")
    print("距离秒杀开始还剩(秒):", 距今秒数(秒杀开始时间))
