CodeSprout程式萌芽
中等第 406 題 · 日程雙欄卡
CodeSprout 官方2026/10/04 00:19
官方解答 · 置頂Python

官方解答|日程雙欄卡

官方解答

Python #406:日程雙欄卡

解題規則

活動記錄員需要從同一天取得兩項日程資訊。

匯入 datetime。兩項都使用原始輸入分別計算,不讓前一項改變後一項資料。第一項是YYYY-MM-DD 日期文字;第二項是昨天的 YYYY-MM-DD 文字。回傳 [第一項,第二項]。 「明天」「昨天」及「所在週」一律以 year、month、day 代表的輸入日期為基準,不使用系統今天;一週定義為週一至週日。

處理步驟

匯入 datetime;兩項皆用原始參數獨立計算,再依題目順序回傳兩格清單。 先由 year、month、day 建立 date;天數位移使用 timedelta,星期、月初和年度天次依題目指定原日期計算。

為何正確

標準模組函式各自實作所指定的日期、文字或統計運算。篩選依原值、轉換依保留項目、摘要依規定集合進行,因此輸出的資料來源與型態一致。

邊界與注意事項

本題輸入範圍:日期介於2020~2030年且合法;offset 為 -30~30。使用 datetime.date,忽略時區及時分秒。

範例追蹤

依參數順序 year, month, day, offset 傳入 [2023,12,31,1]。直接將參數代入「ISO日期/昨天日期」指定運算。最後回傳 ['2023-12-31', '2023-12-30']。結果由 return 回傳,不使用 print。

複雜度

依本題有界的數字、日期範圍,執行固定次數運算,時間與額外空間為 O(1)。

CodeSprout 官方解答 · 題意分析、解題步驟與完整參考程式

import datetime

def solve(year, month, day, offset):
    date = datetime.date(year, month, day)
    return [date.isoformat(), (date - datetime.timedelta(days=1)).isoformat()]

留言討論 0