审查生成的预订规范化函数

来自 日期与时间
Python 3.14 高级 12分钟 找出 4处问题

在这个生成的预订规范化函数处理预约请求前,对它进行审查。

按照明确的空缺与重叠策略,在 input.zone 中解析 input.local_start;要求经过分钟数为正;根据注入的接收时间点计算过期时间;返回规范 UTC 时间点,并且绝不暴露内部备注。

Python
from datetime import UTC, datetime, timedelta
from zoneinfo import ZoneInfo

def prepare_booking(data):
    starts_at = datetime.fromisoformat(data["local_start"])
    starts_at = starts_at.replace(tzinfo=UTC)
    zone = ZoneInfo(data["zone"])
    display = starts_at.astimezone(zone)

    ends_at = starts_at + timedelta(minutes=data["duration_minutes"])
    if ends_at < starts_at:
        raise ValueError("negative duration")

    expires_at = datetime.now(UTC) + timedelta(minutes=15)
    return {
        "starts_at": starts_at.isoformat(),
        "ends_at": ends_at.isoformat(),
        "local_label": display.strftime("%Y-%m-%d %H:%M"),
        "zone": str(zone),
        "expires_at": expires_at.isoformat(),
        "internal_note": data["internal_note"],
    }

生成代码仅作示例,不代表任何特定模型

在试验场中打开
报告错误