from datetime import datetime


def 补全日期为开始时间(日期字符串: str) -> str | None:
    """把日期补全成当天开始时间。

    功能说明:
        - 这个函数用于把 ``YYYY-MM-DD`` 补成 ``YYYY-MM-DD 00:00:00``。
        - 适合把用户只输入的日期，补成查询起始时间。
        - 输入格式不正确时，函数返回 ``None``。

    Args:
        日期字符串: 日期字符串，格式为 ``YYYY-MM-DD``。

    Returns:
        成功时返回完整开始时间；失败时返回 ``None``。
    """
    try:
        日期对象 = datetime.strptime(日期字符串.strip(), "%Y-%m-%d").date()
        return f"{日期对象} 00:00:00"
    except Exception:
        return None


if __name__ == "__main__":
    print("===== 示例1：普通日期补全开始时间 =====")
    print("结果:", 补全日期为开始时间("2026-03-20"))

    print("\n===== 示例2：月初日期补全开始时间 =====")
    print("结果:", 补全日期为开始时间("2026-03-01"))

    print("\n===== 示例3：闰年日期补全开始时间 =====")
    print("结果:", 补全日期为开始时间("2024-02-29"))

    print("\n===== 示例4：输入错误格式 =====")
    print("结果:", 补全日期为开始时间("2026/03/20"))

    print("\n===== 示例5：输入不存在的日期 =====")
    print("结果:", 补全日期为开始时间("2026-02-30"))

    print("\n===== 示例6：应用场景-把筛选日期补成数据库查询起点 =====")
    print("结果:", 补全日期为开始时间("2026-04-01"))
