from datetime import datetime


def 获取相差年数(时间1: str, 时间2: str) -> int | None:
    """计算两个时间相差多少个完整年。

    功能说明:
        - 这个函数用于计算两个标准时间之间相差多少个“完整年”。
        - 返回结果保留正负号，第二个时间更晚时返回正数。
        - 如果还没满一年，就不会进位成 1。
        - 输入格式不正确时，函数返回 ``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")

        符号 = 1
        if t2 < t1:
            t1, t2 = t2, t1
            符号 = -1

        年数差 = t2.year - t1.year
        if (t2.month, t2.day, t2.hour, t2.minute, t2.second) < (t1.month, t1.day, t1.hour, t1.minute, t1.second):
            年数差 -= 1
        return 年数差 * 符号
    except Exception:
        return None


if __name__ == "__main__":
    print("===== 示例1：刚好相差 1 个完整年 =====")
    print("结果:", 获取相差年数("2025-03-20 10:00:00", "2026-03-20 10:00:00"))

    print("\n===== 示例2：不足 1 个完整年 =====")
    print("结果:", 获取相差年数("2025-03-20 10:00:00", "2026-03-19 10:00:00"))

    print("\n===== 示例3：相差多年 =====")
    print("结果:", 获取相差年数("2020-01-01 00:00:00", "2026-01-01 00:00:00"))

    print("\n===== 示例4：第二个时间更早 =====")
    print("结果:", 获取相差年数("2026-01-01 00:00:00", "2020-01-01 00:00:00"))

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

    print("\n===== 示例6：应用场景-计算员工工龄满了几年 =====")
    print("结果:", 获取相差年数("2020-05-10 09:00:00", "2026-05-10 09:00:00"))
