![]()
目錄
? iOS:讓蘋果鬧鐘真正理解中國調休制度
? Android:基于 Tasker 的節假日補班鬧鐘
▍iOS:讓蘋果鬧鐘真正理解中國調休制度
作者:@ GarethNg,利益相關聲明:作者與文中產品有直接的利益相關(開發者、自家產品等)。
iOS 自帶的時鐘應用能夠完成基礎提醒任務,但面對中國特有的調休制度,它顯得力不從心。Alarm One 試圖解決的核心問題是:如何讓鬧鐘真正理解時間,而不僅僅是按時響鈴。
Alarm One 使用 iOS 26 的系統框架 AlarmKit, 實現原生鬧鐘支持,曾經在 iOS 26 首發被蘋果編輯官方推薦。
下載鏈接:
https://apps.apple.com/app/apple-store/id6748434148
調休同步的實現邏輯
中國的節假日制度有其特殊性。以2025年為例,全年涉及調休的日期超過15個,這意味著平均每個月都要面對一次「這周周六上不上班」的疑問。
Alarm One 的解決方案是直接對接官方發布的節假日安排。應用每年年初自動獲取最新的調休數據,并將其轉化為鬧鐘的觸發規則:法定節假日自動靜音所有工作鬧鐘;調休補班在周末觸發工作日的鬧鐘設置;周末狀態保持原有的休息日設定。這種三層判斷機制確保了該響的時候響,不該響的時候靜。
![]()
![]()
從「被嚇醒」到自然醒
鈴聲選擇對起床體驗的影響常被低估。Alarm One 支持自定義鈴聲。用戶可以上傳本地音頻文件
復雜工作節奏的適配
對于實行大小周、月末周六的用戶,Alarm One 提供了靈活的重復規則配置。以大小周為例,用戶可以設置:單周周一至周五響鈴,雙周周一至周六響鈴。系統根據設定的起始日期自動推算整個周期,無需每周手動調整。
更多功能
基于 iCloud 的同步機制確保了多設備用戶的體驗一致性。臨時鬧鐘功能則保持了列表的整潔——一次性提醒響鈴后自動從列表中移除。
▍Android:基于 Tasker 的節假日補班鬧鐘
作者:@ 化學心情下2
對國內工作、生活的朋友來說,超過三天的節假日一般就會帶來另一個情況——調休補班,由此衍生出的鬧鐘問題也常被 Android 和 iOS 用戶提起。
一般而言,手機鬧鐘按照標準的工作日設定,即周一到周五響起,周末關閉。因為補班情況的存在,本來休息放假的時候需要鬧鈴,很容易睡醒一看發現已經要遲到了……所以隨著現在大部分的國產 Android 機都已內置了自動補班的鬧鐘設置,系統會貼心地根據每年節假日安排自動設置好補班鬧鈴;至于 iPhone,即便系統原生鬧鐘沒那么「接地氣」,iOS 用戶依然可以「曲線救國」,導入相關的快捷指令實現和國產 Android 手機一樣的自動補班鬧鐘。
原生、類原生 Android 用戶成了「最苦的」。比如 Pixel 或者非國行 Android 手機,既沒有自動設定補班鬧鐘的系統功能,也沒有足夠強大、類似 iPhone 快捷指令的原生自動化工具。
這種時候就該請出 Tasker 了。
實現原理
其實無論是國產 Android 手機,還是 iPhone 上的快捷指令,實現自動化節假日補班鬧鐘,核心原理都是基于每一年公布的節假日放假安排設置日歷,然后讓系統根據日歷活動信息自動創建并開啟鬧鐘。
所以我們只需要:
訂閱節假日補班/放假日歷 -> 系統根據日歷里面的全天日歷活動里面的標題關鍵字設定鬧鐘創建規則 -> 當日凌晨執行檢查程序并確定當天是否上班 -> 要上班,創建當日早晨鬧鐘。
根據上面的這個思路,我們就可以編排這個自動化小任務了。
步驟一:在線訂閱中國節假日調休補班日歷
首先我們需要將中國節假日調休補班日歷添加到手機系統日歷中。
如果你在 Apple 生態設備——Apple 日歷應用內置的中國大陸節假日一般會內置調休補班信息(偶爾會有延遲),你可以想辦法將這個日歷同步到 Android 設備上。在筆者所使用的 Pixel 設備中,默認日歷應用是 Google 日歷,所以訂閱在線日歷并不能直接在手機端進行,只能在 Web 端操作。這里我們在電腦上打開 Google 日歷,然后在 Google 日歷左下方的「其他日歷」旁點擊「+ -> 通過地址添加」:
![]()
在「通過地址添加」這里,導入https://ical.muhan.org/這個日歷訂閱鏈接,然后點擊「添加日歷」完成添加:
![]()
完成訂閱后 Google 日歷中就會出現「中國節假日安排」這個日歷了,同時你在比如月視圖中看到某些日期下已經有個諸如xx假期、xx補班的全天日歷活動,那么就表示你的 Google 賬號下已經成功訂閱了這個在線日歷了。
編注:Google 日歷其實是有中國大陸節假日訂閱的(移動端可在「日歷設置 -> 更多 -> 節假日」中添加「地區性節假日」),但這個訂閱只管放假、不管調休補班。本地化還是不如 Apple。
步驟二:在 Android 手機的日歷中打開訂閱日歷
在 Web 端訂閱完日歷后,我們還要在手機端的 Google 日歷應用中將這個訂閱的日歷打開并同步,從而確保后面我們可以使用 Tasker 讀取到訂閱日歷里面的日歷活動標題。
這里我們點擊 Google 日歷 App 左側上方的漢堡菜單 ,找到頁面下方的「設置」,在自己 Google 賬戶信息下點擊剛剛在 Web 端訂閱的「中國節假日安排」這個日歷,然后將上面的「同步」開關打開。
![]()
再回到應用首頁,點擊左上角的漢堡菜單打開側欄,確定你的賬戶下這個「中國節假日安排」的日歷顯示是被勾選的,同時右側的對應日期上已經顯示了和節假日日歷活動有關內容(比如有 xxx 假期),就表示這個和節假日的日歷已經可以能在手機端日歷應用上查看了。
![]()
步驟三:在 Tasker 中創建自動化補班鬧鐘任務
我們仔細觀察訂閱的這個「中國節假日安排」日歷中日歷活動就不難發現,如果是需要補班的日期,就包含有一個標題為「xxx 補班」的全天日歷活動;而如果是工作日的放假,那么對應的日期下的就會有名為「xxx 假期」的日歷活動。
我只需要在設定 Tasker 任務的時候,通過創建變量來抓取當天系統日歷的全天日歷活動,檢查標題是否有包含 「假期」或者「補班」,就可以知道是否需要創建并開啟鬧鐘。這也是在前面訂閱日歷時,補班或者假期的日歷項必須是「全天」的原因——檢查是否上班必須是當日的日歷項,如果是非全天的活動(比如日歷活動是從 9 點到 18 點的這種有時間段的日歷活動),則程序在當日凌晨時根本檢測不到已經發生的活動標題(當然,如果你熟悉變量之后,也可以自行訂閱其它日歷并選擇更多抓取條件)。
![]()
![]()
我們將 Tasker 設置成英文(便于找到相應的操作步驟),打開應用并切換到 Task 選項卡,點擊右下角的 「+ 」創建一個名為WorkAlarm的任務。在任務編輯頁面中我們需要創建多個子條件:
創建子條件 1:在任務編輯頁面中點擊有下角的「+」,在動作中選擇
Variable - Variable Set,在變量設置里面,在 Name 中填寫%is_work,在 To 中填寫0,然后返回到任務編輯頁面。這個變量的邏輯是,假設今天是休息的,不設置鬧鐘。
![]()
創建子條件 2:繼續在任務編輯頁面中點擊右下角的「+」,在動作中選擇
Variable - Variable Set,在變量設置里面,在 Name 中填寫%is_work,在 To 中填寫1,然后移動到下面的 if 點擊右側的「+」添加判斷:左側的 Variable 填上%DAYW,然后點擊中間的邏輯選擇Doesn't Match(也就是!~),在 Value 中填寫*六*/*日*/*Sat*/*Sun*,寫好之后點擊左上角返回到任務編輯頁面。這一條條件就是如果是周一到周五,就設為上班。
![]()
創建子條件 3:繼續在任務編輯頁面中點擊有下角的「+」,在動作中選擇
Variable - Variable Set,在變量設置里面,在 Name 中填寫%is_work,在 To 中填寫0,然后移動到下面的 if 點擊右側的「+」添加判斷:左側的 Variable 填上%CALTITLE,中間的邏輯選擇不變,右邊的 Value 中填寫*假期*,填好之后點擊左上角返回到任務編輯頁面。這一條件的意思是,如果是法定節假日,即使是周一到周五的任意一天,都不設置鬧鐘,判斷依據是日歷活動標題包含假期字眼。
![]()
創建子條件 4:繼續在任務編輯頁面中點擊有下角的「+」,在動作中選擇
Variable - Variable Set,在變量設置里面,在 Name 中填寫%is_work,在 To 中填寫1,然后移動到下面的 if 點擊右側的 「+」添加判斷:左側的 Variable 填上%CALTITLE,中間的邏輯選擇不變,右邊的 Value 中填寫*補班*,填好之后點擊左上角返回到任務編輯頁面。這一條件的意思是,如果是日歷活動的標題中有補班字眼,無論是否是周末都設定上班。
![]()
最后我們還需要設置一個創建鬧鐘動作:繼續在任務編輯頁面中點擊有下角的「+」,在動作中選擇System - Set Alarm,在 Hour 這里設置鬧鐘的小時(我是設置成為 6 點),在 Minutes 這里設置分鐘(我設置成 50 分),然后移動到下面的 if 點擊右側的 「+」添加判斷:左側的 Variable 填上%is_work,中間的邏輯選擇Equals,在右邊的 Value 中填寫 1。填好之后返回到前面的任務編輯頁面。這個設置動作只的是,當條件滿足%is_work等于 1 時設置鬧鐘。
![]()
按照以上順序依次創建好變量條件后,最終的任務詳情應該是這樣的:
![]()
最后我們需要驗證下這樣寫的邏輯是否正確并對其進行驗證:
如果今天是普通的工作日,點擊任務編輯頁面下方的 Play 按鈕,如果任務條件編寫沒問題,執行結果應該是創建了當日的鬧鐘。
如果今天是普通的周末(周六/周日),點擊任務編輯頁面下方的 Play 按鈕,如果任務條件編寫沒問題,執行結果應該是沒有任何信息返回(不創建鬧鐘)。
當然如果驗證你的節假日調休是否正常,則可以在手機的 Google 日歷的個人日歷里面,給今天加上一個全天活動,活動名稱標題包含補班或者假期的字眼就可以,然后還是在這個任務編輯頁面直接點擊運行看是否符合設定的結果。進而驗證整個任務邏輯是否順暢。
![]()
最后,回到 Tasker 的 Profile 選項卡,點擊右下方的 + 按鈕,在新建的配置中選擇基于 Time 觸發,在時間設置上選擇從00:05到00:05,也就是每天凌晨 00:05 觸發一次,然后將這個配置和剛才我們創建的這個名為WorkAlarm的任務關聯起來,最后打開任務執行的開關,點擊右上角的√完成全部動作設定。
至此這個自動化的節假日補班鬧鈴就算是設定完成了!
結語
通過設定如上的自動化任務之后,任務將會根據配置條件當日凌晨會根據設定的條件進行檢查,如果包含任務條件中需要設定鬧鐘的會立即完成對當日早上起床鬧鐘的設置并開啟,這樣就不用擔心假期補班導致的上班遲到或是正常假期被鬧鐘吵醒啦。
手握非國行的 Android 手機或者 Pixel 機型的小伙伴不妨試試這個小技巧。
![]()
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.