利用假期,早上和美國的同事開完會後,開始動手寫了一個小程式,自動產生了「六齋日」 Google 日曆,包含了這個世紀末之前的 5,455 個「六齋日」。
對於軟體工程師來說,寫好一個程式特別感到充實啊!寫程式的時候根本不需要番茄鐘,幾個小時瞬間就過去了! XD
Motivation
在家居士在六齋日持八關齋可避免墮三惡道,趣向人、天、涅槃。
六齋日是農曆每個月的第 8 日、第 14 日、第 15 日、第 23 日、第 29 日、第 30 日。
如果能夠在 Google calendar 上自動標註今天是六齋日,有助於八關齋的奉持。
但 Google calendar 並無法以農曆為基礎設定 recurrence events,於是動手寫 JavaScript 自動把從今天到這個世紀末之前的 5,455 個六齋日加入 Google calendar。
Approach
以 JavaScript 撰寫 web application,判斷從今天起到這個世紀末的最後一天,每一天是否為六齋日,若是,則透過 Google Calendar API 把 event 加入 Google calendar。
1. 接通 Google Calendar API, 列出某個 calendar 的 events.
Source Code: index.html2. 使用 Google Calendar API 新增一個 calendar event.
Web Page: index.html
注意: 要把 CLIENT_ID, API_KEY, calendarId 改成你自己的.
參考資料: Google Calendar API: Browser Quickstart
Source Code: insert_event.html3. 把陽曆日期轉換為農曆日期
Web Page: insert_event.html
參考資料: Google Calendar API: Events: insert
Source Code: solar2lunar4. 列出從 2020-04-02 到 2099-12-31 所有的六齋日
Web Page: solar2lunar
參考資料: Lunar-Solar-Calendar-Converter
Source Code: iterate_six_commandment_days5. 新增從 2020-04-02 到 2099-12-31 所有的六齋日到 Google calendar
Web Page: iterate_six_commandment_days
Source Code: insert_six_commandment_days
Web Page: insert_six_commandment_days
Result
完成的日曆: 六齋日日曆 (按右下角的 "+ Google Calendar" 可以把這個日曆加到你的 Google calendar).
新增 5,455 個 Google calendar events 的 Log.