参考
https://www.6hu.cc/archives/203577.html
步骤说明
1、创建起床闹钟,选择每天都运行
2、获取日历订阅,主要是得到法定节假日的休息和补班
(1)可以通过订阅苹果官方的中国法定节假日
(2)也可以自行编写ics文件,导入进来,可参考 https://www.cnblogs.com/masonblog/p/17961971
3、创建快捷指令,从日历中获取日程,判定当前日期是否需要开启起床闹钟
4、创建自动化,每天凌晨执行一下快捷指令,更新一下闹钟的开启和关闭状态
快捷指令实现过程
完整版
当前我自己在使用的版本,https://www.icloud.com/shortcuts/f6f4d104019246dda367b47c7f1d629a
点击链接,会自动询问是否添加快捷指令
里面有启停闹钟的步骤,以及判定普通日期是否为工作日的逻辑
基础版
这个版本,主要是方便验证获取日程,https://www.icloud.com/shortcuts/4e0c973de520405e80e61f0201873e97
关键配置的说明
(1)从[所有日历],line 1
可以选择单个日历或所有日历
(2)获取[2个日程],line 1
这里的个数可以调整,一般为3个
如果选择了[所有日历],订阅中默认带了2个,而你又新建了3个日程
这里只会获取到3个,也就获取不全了
测试了下,这里会按照日程字符倒序,可能会获取不到节假日信息了,影响判断
比如:
国庆10月1日,而且这天是周一到周五某一天,也就是正常的工作日
再写一个日程,内容为:原神启动1
再写一个日程,内容为:原神启动2
再写一个日程,内容为:原神启动3
再写一个日程,内容为:原神启动4
再写一个日程,内容为:原神启动5
这时,法定节假日订阅中1个[国庆(休)]的日程,再加上自己写的5个
按照排序规则取3个
只会取到,3条原神启动的日程
最终会判定为普通的工作日,也就会打开起床闹钟
(3)从[临近日程],line 2
获取到的日程信息,多个日程信息会换行展示
(4)获取[名称],line 2
即日程的名称
存在的问题
由于快捷指令执行的核心逻辑为获取日程信息,在下面的场景,会导致判断失误
当天,为星期一,也没有法定节假日的休息,也就是实际上为正常上班的
但是,在快捷指令执行前,你在日历中的这一天,新建日程,写了一句话,内容:好难受,想休息
当快捷指令运行时,获取日程后,其中就包含了"休"这个字,就会判定今天为休息,也就把你的起床闹钟关掉了
下面是测试结果
(1)在1月8号添加了日程
(2)显示获取到的标题,这里标题和名称,2个属性,我都测试了下,都会触发这个错误的判定逻辑
(3)执行判定逻辑,这里是打印,按照完整版快捷指令的逻辑,这里会把起床闹钟给关闭
自动化实现过程
如下,创建一个自动化
当 每天的 00:01,这个时间看你把握,反正在你起床闹钟的时间前就行
执行 上面创建的快捷指令
标签:节假日,日程,法定,日历,获取,指令,快捷,闹钟 From: https://www.cnblogs.com/masonblog/p/17962106