from datetime import datetime


def 日期转年月日(日期字符串: str) -> tuple[int, int, int] | None:
    """把日期字符串拆成“年、月、日”。

    功能说明:
        - 这个函数用于把 ``YYYY-MM-DD`` 这种日期字符串拆成三个整数。
        - 返回结果是 ``(年, 月, 日)`` 这样的元组。
        - 适合继续做年份、月份、日期的单独处理。
        - 输入格式不正确时，函数返回 ``None``。

    Args:
        日期字符串: 日期字符串。

    Returns:
        成功时返回 ``(年, 月, 日)``；失败时返回 ``None``。
    """
    try:
        日期对象 = datetime.strptime(日期字符串.strip(), "%Y-%m-%d")
        return 日期对象.year, 日期对象.month, 日期对象.day
    except Exception:
        return None


if __name__ == "__main__":
    print("===== 示例1：拆分普通日期 =====")
    print("结果:", 日期转年月日("2026-03-20"))

    print("\n===== 示例2：拆分带前导 0 的日期 =====")
    print("结果:", 日期转年月日("2026-03-02"))

    print("\n===== 示例3：拆分闰年日期 =====")
    print("结果:", 日期转年月日("2024-02-29"))

    print("\n===== 示例4：输入错误格式 =====")
    print("结果:", 日期转年月日("2026/03/20"))

    print("\n===== 示例5：输入不存在的日期 =====")
    print("结果:", 日期转年月日("2026-02-30"))

    print("\n===== 示例6：应用场景-把生日拆成年月日单独展示 =====")
    年, 月, 日 = 日期转年月日("2000-08-15") or (None, None, None)
    print("结果:", 年, 月, 日)
