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