对于国内用户来说,iOS 不支持节假日闹钟向来是一大痛点。相信大家都有忘记调闹钟而遇到假期八点被吵醒、调休十点还在睡的窘迫情况。
在 iOS 16 的更新中,Apple 为「中国大陆节假日」这一订阅日历加上了调休提醒。在 iOS 16 的日历应用中,你甚至可以直接在日历页面看到「休」和「班」的字样。
得益于这一特性,我们终于可以借助快捷指令来实现「节假日闹钟」的功能,让闹钟自动根据上班情况来开关。
快捷指令概览点此下载快捷指令
在编写快捷指令前,我建议先分别设置一个工作日响起的闹钟,以及一个周末响起的调休闹钟。在编写快捷指令的时候就可以直接调用,下载范例的时候也只需要修改闹钟名称即可套用。如果你只想设置一个闹钟也没关系,后文会提及单个闹钟的调休设置。
这个快捷指令的实现原理其实非常简单,只需要用到「获取临近日程」「如果」和「开关闹钟」三个动作。
首先,从「中国大陆节假日」日历中获取一个日程,将时间设为「今天」。这一动作的目的在于检查当天是否为节假日的特殊情况,如果能获取到日程,说明今天要么是假期,要么是调休;如果没有获取到日程,则说明当天是正常的工作日 / 周末。
值得一提的是,如果在假期当天可能会包含多个日程,因此我比较建议将「获取临近日程」的项目数改为 2。
清楚这一逻辑之后,下面的「如果」动作就非常好理解了。首先,我们要判断当天是否为特殊情况,如果没有特殊情况的话,就按照正常的休息情况打开「起床」闹钟,关闭「调休」闹钟。
如果你想开关通过「就寝」功能设置的闹钟,那么还可以添加「编辑睡眠闹钟」动作来实现开关,不需要在闹钟列表中手动寻找。
随后,在「否则」里加入第二个「如果」判断,点击「临近日程」选择「标题」,设置为 如果 标题 包含 休,这一动作会在检测到当天是假日的情况下执行。因为「中国大陆节假日」日历中还会包含节气,此举可以避免误判。
在第二个如果判断的「否则」后,我们再嵌套一层 如果 标题 包含 班 作为兜底,并打开调休闹钟。确保快捷指令可以稳定运行,从而保证日常、调休、放假的三种状态均能正常触发。
最后在第二个如果的「否则」里加上打开调休闹钟的动作,这个快捷指令就完成了。因为调休日通常是周末,所以不需要修改「起床」闹钟也没问题。
但想要让这个快捷指令自动运行,我们还得在「自动化」里添加一个「特定时间」的自动化。我的时间设置是「每天 00:01」「立即运行」并且关闭「运行时通知」。
在 iOS 17 中,Apple 优化了快捷指令自动化的创建流程。点击下一步后,只需要在搜索框中找到刚刚编写好的快捷指令并点击即可。如果是 iOS 16 及以前的系统,则需要添加一个「运行快捷指令」的动作,并且指向这个快捷指令。
这么做的好处在于可以简化自动化的创建流程,并且在后续需要修改的时候也更方便,直接修改快捷指令库里对应的快捷指令就行了。
在保存时记得关闭「运行前询问」和「运行时通知」,这样自动化在运行的时候就不会发出通知打扰你,真正实现「无痕」体验。
因为快捷指令里用到了 3 个「如果」判断,对于不熟悉快捷指令的朋友来说可能会存在理解困难的问题。你可以参考下图来了解每一个「如果」里的模块都对应着哪种情况,方便你理解这些动作。
能否用一个闹钟解决问题?点此下载快捷指令
前文提到的快捷指令之所以基于两个闹钟,是因为我们在设置闹钟时通常会选择闹钟的「重复」日期。而如果你只想用一个闹钟来解决这些问题,只需要将闹钟设置为「每天」或者干脆设置为单次闹钟,并由快捷指令自动开关即可。
这样一来,只需要建一个闹钟就可以满足日常工作、假期关停、调休开启的需求了。当然,如果担心一个闹钟叫不醒你,也可以手动添加多个「开关闹钟」的动作并指向不同的闹钟。
扩展用法借助这一思路,其实我们还可以根据实际情况扩展出更加更适合自己的「个性化」快捷指令。比如,你只需要在第一个「如果」后面嵌套一个「格式化日期」并按照下图这样设置,就是打开工作日闹钟。
其中格式化字符串里的「e」会用 1-7 代表今天是星期几,快捷指令会跟随默认设置从周日开始计算,因此如果需要计算周一到周五,就需要在「如果」中获取 2-6 之间的数字。
有些公司会实行大小周制度,那么在「格式化日期」的动作里将「e」改成「w」或「W」即可,小写 w 指的是当前星期是整年的第几周,而大写 W 则代表着当前星期是这个月的第几周。并根据实际情况调整下方「如果」判断的数字即可。
除此之外,对于值班制工作的人来说,也可对值班日历进行判断并自动开关闹钟。学生党也可以通过添加多重判断来实现上课提醒,或者结合日历课表来实现「早课自动闹钟」。
小结这个快捷指令本身并没有特别复杂的地方,我们只需要理清逻辑,让快捷指令一步步判断今天是否要打开闹钟即可。得益于快捷指令支持无通知运行自动化,我们可以做到完全无缝的「节假日闹钟」体验,iOS 用户终于不用再羡慕 Android 用户的节假日闹钟了。