from datetime import datetime


def 取星期几(时间字符串: str | None = None) -> str:
    """返回指定时间或当前时间对应的星期几。

    功能说明:
        - 这个函数用于判断某个时间是星期几，返回结果是 ``星期一``、``星期二`` 这样的中文字符串。
        - 如果你没有传入时间，函数就会直接用当前系统时间来判断。
        - 如果传入的时间格式不对，函数会返回空字符串 ``""``，方便你继续做判断。

    Args:
        时间字符串: 要判断的时间字符串，格式为 ``YYYY-MM-DD HH:MM:SS``；不传时默认使用当前时间。

    Returns:
        成功时返回中文星期；失败时返回空字符串 ``""``。
    """
    try:
        if 时间字符串:
            时间对象 = datetime.strptime(时间字符串.strip(), "%Y-%m-%d %H:%M:%S")
        else:
            时间对象 = datetime.now()

        星期列表 = ["星期一", "星期二", "星期三", "星期四", "星期五", "星期六", "星期日"]
        return 星期列表[时间对象.weekday()]
    except Exception:
        return ""


if __name__ == "__main__":
    print("===== 示例1：查看指定日期是星期几 =====")
    print("结果:", 取星期几("2026-03-20 09:30:00"))

    print("\n===== 示例2：不传参数，直接查看今天是星期几 =====")
    print("结果:", 取星期几())

    print("\n===== 示例3：查看周末日期 =====")
    print("结果:", 取星期几("2026-03-22 08:00:00"))

    print("\n===== 示例4：输入错误格式 =====")
    print("结果:", 取星期几("2026/03/20"))

    print("\n===== 示例5：输入不存在的日期 =====")
    print("结果:", 取星期几("2026-02-30 09:30:00"))

    print("\n===== 示例6：应用场景-判断培训课排在周几 =====")
    培训时间 = "2026-04-15 19:00:00"
    print(f"{培训时间} 是:", 取星期几(培训时间))
