📅 Python自動產生整年日期(含規律循環)並輸出Excel|新手也能看懂的完整教學
📖 前言:為什麼需要「日期自動生成」?
在實務工作中(像是報表、排程、金融或製造業系統),常會遇到這種需求:
👉「日期不是每天都有,而是依照某種規律跳動」
例如:
- 有時隔一天
- 有時隔兩天
- 而且這個規律是固定循環的
手動打 Excel 非常容易出錯,也很浪費時間,所以我們用 Python 來解決。
🧠 問題拆解(用最白話方式講)
我們的需求是:
✅ 起始日期
2026/01/26
✅ 日期不是每天增加,而是照這個規律:
+1 天 → +2 天 → +2 天 → +2 天 → 然後重複
👉 這種就叫做「循環規律」
🔁 規律視覺化(幫你更好理解)
| 次數 | 增加天數 | 日期 |
|---|---|---|
| 1 | 起始 | 2026/01/26 |
| 2 | +1 | 2026/01/27 |
| 3 | +2 | 2026/01/29 |
| 4 | +2 | 2026/01/31 |
| 5 | +2 | 2026/02/02 |
| 6 | +1 | 2026/02/03 |
| ... | 重複 | ... |
⚙️ 解法概念(工程師思維)
我們會做三件事:
- 設定起始日期
- 設定規律陣列(pattern)
- 用迴圈一直加日期,直到年底
🧪 Python實作
import pandas as pd
from datetime import datetime, timedelta
# 1️⃣ 初始設定
begin_day = datetime(2026, 1, 26)
limit_day = datetime(2026, 12, 31)
# 2️⃣ 規律設定(循環使用)
step_rules = [1, 2, 2, 2]
# 3️⃣ 儲存結果
result_list = []
current = begin_day
rule_index = 0
# 4️⃣ 產生日期
while current <= limit_day:
result_list.append(current)
# 根據規律往後加天數
days_to_add = step_rules[rule_index]
current = current + timedelta(days=days_to_add)
# 循環規律
rule_index = (rule_index + 1) % len(step_rules)
# 5️⃣ 整理資料
table = pd.DataFrame({
"日期": [d.strftime("%Y.%m.%d") for d in result_list]
})
# 6️⃣ 匯出 Excel
file_name = "auto_dates_2026.xlsx"
table.to_excel(file_name, index=False)
print("完成產生,共有 {} 筆資料".format(len(table)))
⚠️ 常見錯誤(很多人會踩)
❌ 錯誤示範(變數名稱打錯)
print(file_output_name)
但你實際定義的是:
file_name = "xxx.xlsx"
👉 這會出現錯誤:
NameError: name 'file_output_name' is not defined
✅ 正確觀念
👉 變數名稱要完全一致
📊 輸出結果(Excel會長這樣)
| 日期 |
| 2026.01.26 |
| 2026.01.27 |
| 2026.01.29 |
| 2026.01.31 |
| 2026.02.02 |
| 2026.02.03 |
| ... |
🚀 延伸應用(超實用)
這段程式可以用在:
- 📈 金融交易日生成
- 🏭 製造排程(非連續日期)
- 📅 任務排程系統
- 📊 報表自動填日期
- 🤖 自動化 Excel 作業
留言
張貼留言