from datetime import datetime, timedelta


def 时间加分钟(时间字符串: str, 分钟数: int) -> str | None:
    """在原时间上增加或减少指定分钟数。

    功能说明:
        - 这个函数用于把一个标准时间往后推几分钟，或者往前退几分钟。
        - 传入的时间格式必须是 ``YYYY-MM-DD HH:MM:SS``。
        - ``分钟数`` 可以是负数，负数表示往前推。
        - 输入格式不正确或参数不能参与计算时，函数返回 ``None``。

    Args:
        时间字符串: 原始时间字符串。
        分钟数: 要增加的分钟数，负数表示减少。

    Returns:
        成功时返回计算后的时间字符串；失败时返回 ``None``。
    """
    try:
        原时间 = datetime.strptime(时间字符串.strip(), "%Y-%m-%d %H:%M:%S")
        新时间 = 原时间 + timedelta(minutes=分钟数)
        return 新时间.strftime("%Y-%m-%d %H:%M:%S")
    except Exception:
        return None


if __name__ == "__main__":
    print("===== 示例1：在原时间上加 15 分钟 =====")
    print("结果:", 时间加分钟("2026-03-20 10:00:00", 15))

    print("\n===== 示例2：在原时间上减 30 分钟 =====")
    print("结果:", 时间加分钟("2026-03-20 10:00:00", -30))

    print("\n===== 示例3：跨天增加分钟 =====")
    print("结果:", 时间加分钟("2026-03-20 23:50:00", 20))

    print("\n===== 示例4：输入错误格式 =====")
    print("结果:", 时间加分钟("2026/03/20 10:00:00", 15))

    print("\n===== 示例5：分钟数不是整数 =====")
    print("结果:", 时间加分钟("2026-03-20 10:00:00", "15"))

    print("\n===== 示例6：应用场景-给会议开始时间自动顺延 10 分钟 =====")
    会议开始 = "2026-03-20 14:30:00"
    实际开始 = 时间加分钟(会议开始, 10)
    print("实际开始时间:", 实际开始)
