纯血鸿蒙离线历书实测:老黄历日程表的预置历表、公历农历互推与本地日程模型
起因是想给父母换一个日历App。老人看日子习惯对照农历和节气,但手机里常见的日历要么开屏广告关不掉,要么一断网农历内容就加载不出来,还有的张口就要通讯录和定位权限。挑了几款之后,最近在纯血鸿蒙上试了「老黄历日程表」,一个把传统历书和日程提醒做在一起的本地应用。实际用了一周多,这篇从数据组织和实现角度记录一下。
挑日历类工具的几个标准
- 历法数据要预置在本地,农历、节气、节日不能靠联网拉取,断网也能查;
- 公历农历双向转换要准,跨年、闰月、大小月这些边界不能错;
- 日程数据只存本机,待办属于个人隐私,不应上传到账号体系;
- 权限要克制,日历类应用没有理由要通讯录、定位、麦克风;
- 界面要适合长辈,字大、入口直白、没有广告弹窗。
功能总览:十二个入口,历法工具占了大半
首页把功能分成几个分区,加上底部的月历和日程,入口一共十二个左右。顶部是当天公历、农历、干支、生肖的大卡片,下面依次排着农历转换、日期计算、二十四节气、节日大全等工具,最后是月历和待办。整体思路是把一本传统历书拆成可查询的功能模块,而不是只给一张每日黄历页。

公历农历互转:预置历表,转换完全在本地算
我重点试了公历转农历和农历转公历。任选日期,应用给出对应的农历年月日和干支纪年纪日;反过来输入农历日期也能推回公历。特意测了几个容易出错的边界:闰月年份、腊月大小月、跨年度的日期,结果都和系统日历对得上。
从实现角度看,这类功能不需要联网,也不应该联网。农历是一套已知的历法表,把历表预置进应用包,转换时本地查表再加规则推算即可;干支和生肖则是六十甲子、十二年一循环的周期序列,用序号取模就能得到,任何一步都没有发请求的必要。直接好处是飞行模式下照查不误,查了什么也不会留下网络痕迹。

同一个分区里还有日期计算工具,支持算两个日期之间相差多少天,以及从某一天往前或往后推 N 天是几月几日。给老人算离过节还有多少天、核对单据间隔都能用,本质就是纯本地的日期运算。

节气与节日:交节日和农历节日的公历映射
二十四节气页按年份列出全部节气,给出每个节气的交节日期。节气本质上是按太阳黄经推算的天文历点,在公历上的日期相对固定,应用直接给出预置的推算结果,点进去还有物候等说明文字。

节日大全把春节、元宵、端午、中秋、重阳等农历传统节日映射到当年的具体公历日期,也包含清明、冬至这类节气节日。农历节日的公历日期每年漂移,靠的还是底层那张农历转换表——同一套数据模型同时支撑了互转和节日两个页面。

至于每日宜忌这类传统内容,应用也会列出。我个人的态度是把它当作民俗资料了解,看一眼添个过节的气氛,不作为出行、办事的依据;生肖、择吉之类的入口这篇就不展开了,重点还是它作为历法工具和日程工具的部分。
月历日程:农历标注网格上的本地待办与提醒
真正让我把它留下来当主力用的是月历日程页。月视图每个格子除了公历日期,还标了农历日、节气或节日,一眼能看出哪天过节。点某个日期可以新建待办,支持起止时间、重复规则、地点、备注、颜色分类,还能设置提前提醒。

日程数据全部存在应用自己的本地存储里,没有账号体系,也没有云同步开关,换句话说不存在同步上云这回事。换手机需要重新录入,这是本地优先方案的代价;但对只在一台手机上记吃药、复诊、家庭聚会的长辈来说,反而更让人放心。
权限核对与小结
我专门核对了权限列表:应用不申请网络权限,也没有通讯录、定位、相机这类敏感授权,运行不需要登录。配合预置历表的设计,它的查询类功能在断网环境下全部可用。
小结一下,「老黄历日程表」适合两类人:一是习惯看农历、节气、传统节日又厌烦广告的长辈;二是想在月历上直接对照农历安排家庭日程的用户。历法计算、节气节日数据和本地待办提醒合在一个离线应用里,数据不出手机,目前免费。以上仅为个人实测,功能与收费以实际为准。
更多推荐




所有评论(0)