from datetime import datetime


def 获取相差分钟数(时间1: str, 时间2: str) -> float | None:
    """计算两个时间相差多少分钟。

    功能说明:
        - 这个函数用于计算两个标准时间之间的分钟差。
        - 结果保留正负号，第二个时间更晚时返回正数，更早时返回负数。
        - 适合做排队时长、播放时长和响应时间统计。
        - 输入格式不正确时，函数返回 ``None``。

    Args:
        时间1: 起始时间字符串，格式为 ``YYYY-MM-DD HH:MM:SS``。
        时间2: 结束时间字符串，格式为 ``YYYY-MM-DD HH:MM:SS``。

    Returns:
        成功时返回分钟差；失败时返回 ``None``。
    """
    try:
        t1 = datetime.strptime(时间1.strip(), "%Y-%m-%d %H:%M:%S")
        t2 = datetime.strptime(时间2.strip(), "%Y-%m-%d %H:%M:%S")
        return (t2 - t1).total_seconds() / 60
    except Exception:
        return None


if __name__ == "__main__":
    print("===== 示例1：计算相差 5 分钟 =====")
    print("结果:", 获取相差分钟数("2026-03-20 10:00:00", "2026-03-20 10:05:00"))

    print("\n===== 示例2：计算带小数的分钟差 =====")
    print("结果:", 获取相差分钟数("2026-03-20 10:00:30", "2026-03-20 10:05:00"))

    print("\n===== 示例3：第二个时间更早 =====")
    print("结果:", 获取相差分钟数("2026-03-20 10:05:00", "2026-03-20 10:00:00"))

    print("\n===== 示例4：两个时间相同 =====")
    print("结果:", 获取相差分钟数("2026-03-20 10:00:00", "2026-03-20 10:00:00"))

    print("\n===== 示例5：输入错误格式 =====")
    print("结果:", 获取相差分钟数("2026/03/20", "2026-03-20 10:05:00"))

    print("\n===== 示例6：应用场景-计算客服首响用了多少分钟 =====")
    print("结果:", 获取相差分钟数("2026-03-20 09:00:00", "2026-03-20 09:18:30"))
