自己做的 iOS 节假日闹钟 App「休息日」(Off Day)现在开源了 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
beimenjun
V2EX    分享创造

自己做的 iOS 节假日闹钟 App「休息日」(Off Day)现在开源了

  beimenjun
PRO
2024-07-18 16:25:36 +08:00 10125 次点击
这是一个创建于 449 天前的主题,其中的信息可能已经有所发展或是发生改变。

前情

《肝了五一假期:iOS 平台的假期调休闹钟「休息日」,限时免费,没有内购》( https://v2ex.com/t/1038080

《面向 V2 开发的 App ,没赚到啥钱,整个功能还被「借鉴」了》( https://v2ex.com/t/1042471

项目地址

https://github.com/zizicici/Off-Day

简单介绍这个项目

这个就是一个可以标记某一天是节假日还是工作日的小 App ,自带了几套假期模板,然后提供了相当多的快捷指令,可以配合 iOS 的自动化,就能实现节假日闹钟不响的作用。

只要 iOS 的自动化不掉链子,我觉得我这一套是比国内其他各家的节假日闹钟更优雅和灵活的方案。当然如果掉链子了,就当我没说。

为什么开源

因为一直以来就蒙代码开源的恩,一直就有想把一些产品开源的想法,因为这个产品转成免费之后,用户群体主要还是比较爱折腾的程序员。万一我这个作者哪天挂了,可以自己维护数据,自己编个自己用。

当然开源还是会继续维护的。也欢迎有兴趣的同学基于此开发给 PR 、找 Bug 什么的。

截图

第 1 条附言    331 天前
大陆的节日模板信息已经更新到 2025 年,自治区的还在等各自独特安排。
第 2 条附言    155 天前
太多人觉得免费应用似乎理所当然,2025/05/10 将会恢复付费购买,老用户不影响
56 条回复    2025-05-09 22:18:49 +08:00
1ZeWon
    1
1ZeWon  
   2024-07-18 16:55:02 +08:00
当时限免就下载使用了,对于使用 iOS 的打工人来说,是个解决了痛点的 App ,感谢大佬开源
halfcrazy
    2
halfcrazy  
   2024-07-18 17:25:23 +08:00
已购用户支持一下,开源后内置的调休日历会持续更新吗?
beimenjun
    3
beimenjun  
OP
PRO
   2024-07-18 17:28:15 +08:00   1
@halfcrazy 只要我活着就会继续更新的,现在计划是等到 12 月份发布放假安排了,就更新一波。

每个公共假期模板都有有效期范围的,超出范围就会报错,只要没报错,就说明这一天是在有效范围的。
EmpCold
    4
EmpCold  
   2024-07-18 19:44:32 +08:00
支持一下 ,感谢大佬开源
whywei8
    5
whywei8  
   2024-07-19 07:55:23 +08:00
没安卓的?
beimenjun
    6
beimenjun  
OP
PRO
   2024-07-19 08:38:34 +08:00 via iPhone
@whywei8 毕竟 Android 也没有快捷指令啊
czy8187888
    7
czy8187888  
   2024-07-19 09:07:49 +08:00
一直在用,感谢大佬开源
jinjiang2024
    8
jinjiang2024  
   2024-07-19 09:39:28 +08:00
上次我碰到个 BUG 就是放端午节的时候 端午节当天还是让闹钟响了 我还特意看了当天的时间
beimenjun
    9
beimenjun  
OP
PRO
   2024-07-19 09:42:12 +08:00 via iPhone
@jinjiang2024 这个如果确定快捷指令和执行时间没问题的话,那大概率是自动化没被触发吧。
alwaysbesideyou
    10
alwaysbesideyou  
   2024-07-19 14:51:28 +08:00
感谢大佬开发,之前一直用自己写的快捷指令识别日历中的(休)和(班),难免不够优雅。
regent
    11
regent  
   2024-07-19 21:43:55 +08:00
非常实用 谢谢楼主!
momocha
    12
momocha  
   2024-07-20 14:29:13 +08:00 via iPhone
下载了,app store 5 分勉励一下。个人开发者都不容易,加油。
Wxh16144
    13
Wxh16144  
   2024-07-22 14:13:01 +08:00
respect , 从最初的限免就开始用了,很感谢大佬。
cincout
    14
cincout  
   2024-07-23 16:04:12 +08:00
感谢, 限免用的, 抄袭盈利确实恶心
beimenjun
    15
beimenjun  
OP
PRO
   2024-09-14 14:25:35 +08:00
听说今天调休,那没工作的我就顶一下自己的帖子,开源这么久,一个 Merge Request 都没有。
syncnano
    16
syncnano  
   2024-09-14 14:50:16 +08:00
支持一下,我上次看到要弄快捷指令就放一边了,app 倒是一直装着,直到今天早上睡过时
beimenjun
    17
beimenjun  
OP
PRO
   2024-09-14 14:58:34 +08:00
@gtexpanse 那你最好注意下使用的快捷指令是检测“明天”还是“今天”,触发的时间是十二点前还是十二点后。

我个人推荐的最好的操作是:

每天早上起床后的某个 iPhone 开机的时间(比如上午十点钟或者晚上七点钟),通过自动化,触发一个“检测明天是不是休息日然后关闭开启闹钟”的快捷指令。
syncnano
    18
syncnano  
   2024-09-14 15:16:55 +08:00
@beimenjun #17 谢谢,已经测试生效了,原来只是导入一个快捷指令,然后定时运行这个快捷指令即可,最开始看文档还以为很麻烦。感谢分享。

另外有个小建议:第二步“添加快捷指令”的两个选项,是不是应该提示用户:首先要将自己设置好的睡眠闹钟或者普通闹钟调整为周一到周日一直开启的状态,然后通过自动化调用快捷指令来跳过休息日的闹钟(因为我默认的睡眠闹钟是跳过周六周日的,刚开始设置的时候一直以为是可以添加闹钟而非跳过)
rukeypei
    19
rukeypei  
   2024-09-19 13:41:14 +08:00
挺多人用 swiftui, 大佬为何没有考虑 swiftui
beimenjun
    20
beimenjun  
OP
PRO
   2024-09-19 14:33:49 +08:00
@rukeypei 对我来说,我 UIKit 就能搞定解决的问题,为什么我要去用 SwiftUI 解决呢。

而且 SwiftUI 很多时候奇形怪状的问题 debug 时间消耗更多了。
rukeypei
    21
rukeypei  
   2024-09-19 14:56:15 +08:00
@beimenjun 我也这么认为, 不是特别成熟, 很多很方便的 UIKit 的库都没有. 用最熟悉的一把梭就足够了.
BearCookie
    22
BearCookie  
   2024-09-29 13:41:41 +08:00
可惜没有安卓版,真的太可惜了
wannghao
    23
wannghao  
   2024-09-29 16:24:21 +08:00
解决了 ios 用户痛点用了一段时间了 只有一次休息日突然响铃了 我很纳闷是为什么
可能是我 12 点执行自动化的时候 做了什么跳过了吧
支持楼主
kinfuy
    24
kinfuy  
   2024-09-29 17:06:52 +08:00
@beimenjun #20 新手开发只会 swiftui ,已给 star 本来想借鉴一下 农历怎么处理,不会 uikit
beimenjun
    25
beimenjun  
OP
PRO
   2024-09-29 23:37:50 +08:00
@wannghao 我强烈推荐前一天最后一个闹钟响了之后的某个时间点执行。不要 00:00 执行。

然后设置两个时间点,比如 12:00 和 20:00 ,配合“明天是不是休息日”的快捷指令会比较合适。
beimenjun
    26
beimenjun  
OP
PRO
   2024-09-29 23:39:18 +08:00
@kinfuy 其实你找错东西了,因为这个 App 里没有农历,我只是每年按照放假安排更新节日模板,并没有什么农历初一初二放假的逻辑。
kinfuy
    27
kinfuy  
   2024-09-30 10:33:50 +08:00
@beimenjun #26 怪不得没有找到,还有我 UIKIT 有什么神奇的操作
hewitt29
    28
hewitt29  
   2024-09-30 10:53:44 +08:00
需要 ios16=。=,可惜了,我是 ios15 ,不想升级
jiaran
    29
jiaran  
   2024-09-30 21:42:54 +08:00 via iPhone
iOS15 痛哭
tunetoystory
    30
tunetoystory  
   364 天前
被哪个“借鉴”了?我去喷一下
artoostark
    31
artoostark  
   364 天前
欢迎来我们这边也分享一下作品。
tog
    32
tog  
   364 天前
其实我认为 ios 实现这个功能并不难
是什么情况导致的?
是不是跟"信号不好"一样的道理、
4eympe94CsqJ7Y39
    33
4eympe94CsqJ7Y39  
   364 天前
大佬在这里呀 用挺久的了
beimenjun
    34
beimenjun  
OP
PRO
   364 天前
@tog 当然不容易,国产各个安卓厂,只要一个做一个大陆的闹钟就可以。但是 iOS 设计功能的时候基本是要优先考虑全球的。

“啥时放假”这种事情,听起来很简单,但是做起来其实在信息收集这一环就是很麻烦:

1. 每个国家/地区的节假日安排公布时间是不一样的。很多不同的州过的节日就不一样。

2. 有些日子是会在公布后进行变化的。

而在具体实行的时候也有问题,最常见的是不同身份的人适用的法定假期很多时候不一样。
bhqt
    35
bhqt  
   363 天前
@beimenjun #17 我也是的。默认睡嘛闹钟设置的时候就跳过了周末,结果周末自动运行的时候就报错
KevinXC
    36
KevinXC  
   361 天前
直接这样简单写个快捷指令,然后自动化每天凌晨执行。
beimenjun
    37
beimenjun  
OP
PRO
   361 天前
@KevinXC 无语,我又不是不知道这种写法,我就是觉得这种写法有以下缺点,才有这个 App:

1. 维护难,需要等着 Apple 或者其他日历源喂饭。

2. 修改麻烦,选择肢不好移植到其他快捷指令中,并且针对特定某日的调整不能做到灵活处理,比如寒暑假、自己的假期等等。

3. 拓展性弱,我还提供下一个休息日/工作日、冲突日、更新用户标注之类的快捷指令方法。
KevinXC
    38
KevinXC  
   361 天前
@beimenjun 是的,你通过程序封装好了一个接口供快捷指令调用肯定是更有优势的,我这里贴出来只是说对于一些不想安装 app 并且只有跳过闹钟需求的 v 友提供一个参考
beimenjun
    39
beimenjun  
OP
PRO
   361 天前
@KevinXC 不,我觉得你不是给别人另外的方案,更像是要秀一下自己的知识储备。

不过无所谓了。反正你不是第一个这样的人,也不是最后一个。
answer24
    40
answer24  
   361 天前
真心好用,之前还做了个视频推荐给其他人.
https://www.bilibili.com/video/BV119iLeBECp/
warron
    41
warron  
   331 天前
看了 OP 之前的帖子,支持 OP 。
liushushu
    42
liushushu  
   331 天前
挺好的一款软件,感谢 up 。
shirley0116
    43
shirley0116  
   331 天前
@Wxh16144 你这个消息提醒请问是怎么做到的,能给个思路吗
Wxh16144
    44
Wxh16144  
   331 天前
@shirley0116 就是快捷指令判断,然后选择发送一个群组 [图片地址]( ), 不确定快捷指令会不会泄漏个人电话号码: https://www.icloud.com/shortcuts/696eb7f4de58437e973554053aef4d73
jearyvon
    45
jearyvon  
   331 天前
五一假期 5 天能开发那么多功能 OP 太强了。
这编码效率真的太高了。
这么多功能要是做至少也得一个月
liuidetmks
    46
liuidetmks  
   247 天前
设计简洁优雅,
styang
    47
styang  
   245 天前
很好用啊 一次都没掉过
simple233
    48
simple233  
   155 天前
很好用!没遇到过错误响铃的问题,给你一个啵啵。另外能不能在 github 上放个赞助二维码,想支持一下。
torical
    49
torical  
   155 天前
买个 vivo 备用机,完美解决
beimenjun
    50
beimenjun  
OP
PRO
   155 天前
@torical 你家 vivo 备用机不用钱、不用充电、不占空间,那我会觉得你的这个方案不错。

我这个还支持国外的假日,支持国内的自治区和特别行政区的放假安排,还是我的方案灵活一些。
beimenjun
    51
beimenjun  
OP
PRO
   155 天前
@simple233 不用客气,心意我收到了。

之后全靠后面的用户来支持了,前面的用户不要有付费的心理负担。
hhzou
    52
hhzou  
   155 天前
用了将近一年啦,真好用,感谢
danaesoziommw49
    53
danaesoziommw49  
   155 天前
@whywei8 #5 安卓还有没工作日闹钟的吗
Foxxoccino
    54
Foxxoccino  
   154 天前
今年本来三月三想试试这个 App ,结果当时看到数据没及时更新就放弃了,还是自己手动改了
beimenjun
    55
beimenjun  
OP
PRO
   154 天前
@fluffyfoxxo 农历三月三确实更新晚了一点,不过也在农历二月廿八的时候更新了。之后确实可以早点改。
Dreamerwwr
    56
Dreamerwwr  
   154 天前
来晚了,好像现在开始付费了
关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     6094 人在线   最高记录 6679       Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 26ms UTC 02:31 PVG 10:31 LAX 19:31 JFK 22:31
Do have faith in what you're doing.
ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86