又到了岁末年初的时候了,按照自己的习惯,是又该上淘宝买一个年历日记本了:
这也太便宜了吧!这里我坚决要把价格打上去!
把价格打上去,就是亲自动手制作年历日记本。这样才最符合自己实际使用需求,自己花费的软妹币为零,当然了,自己花费的功夫才是最值钱的,成功的把价格打了上去!
一般淘宝上面买的这个本子,既是日历,又是日记本,日历告诉我每一天是周几、农历几号等信息,日记本提供每一天的空白画面让我可以随意记录任何东西,所以在淘宝上面,这种东西的关键词,有效率手册、工作日记、时间管理、手帐、日记本、日程本…………等等,我暂且管它叫做年历日记本吧。
自己做就可以随意制作了,最终就是这样:
首先是去掉一般效率手册里面繁杂的记账册页的部分,普通日记本的记账页的功能都太弱了,最起码我所需要的双币种记账功能都没有,自己记账是在手机里面有专用的双币种记账功能的app应用来做,所以,自己做年历日记本就裁掉这一部分,还要裁掉通讯录部分、还要去掉什么减肥目标记录等等,自己这个天生的瘦子不需要,自己需要的就是两大块:年历部分和日记部分,就是照片里面右面这页和左面这页。
手工制作2024年年里日记本成品
照片里面自己的这个2024年历日记本,前几天发到自己的视频号上面立刻就有朋友圈一个女性读者好友表示非常喜欢想要购买,她是懂行的,因此,我已经上传到自己的ONLYOFFICE协作空间的公共房间里共享给各位好友们了,热烈欢迎大家下载到本地后自行打印装订成册使用!共享连接我已经放在文末资源共享/下载部分了。
无论是年历部分还是日记部分,都是要涉及到公历农历换算的,涉及到计算,那就需要xlsx格式的表格办公文件出场了,即使没有农历,公历日历也还是会有稍许计算来自动生成,因此,我先在网上找一些现成的年历素材资源,程序员的原则就是,能不自己重新造的轮子,就绝不自己重新轮,找网上开源免费的资源。使用百度找xlsx优秀示例?你out了!一上百毒你就上当!对于各种格式的办公文档,最好的资源,就在这里:
微软的Excel里面,在新建表格的时候,选择从M$ Office的官方素材库里面,输入关键词搜索,如图输入年历两个字,就可以搜索到很多日历素材:
选择一个任意年份日历,这样下载得到的xlsx文件,可以生成任意年份的日历,当然,对于微软这样的西洋国家公司,其维护的在线资源素材里面的年历,是只有公历没有农历的。因此,虽然自己不用重新轮公历的计算,但还是要自己编写公历转换农历的计算公式。
另外,友情提示,微软这样的西洋国家软件公司的在线素材资源,从国内访问链接过去,是需要架设木弟子咳血伤亡的,幸好,我已经替你们出洋把这个公历日历下载下来了,并且加入了自研的农历和B历,增加了强大的功能,上传到了自己的ONLYOFFICE协作空间的公共房间里面了,欢迎大家访问文末资源共享/下载部分。
注意看上图中的公式框,可以看出,即使是公历本身,其计算公式也非常复杂,本着程序员界的“能跑就不要改”的原则,自己对其原有的所有公式都连看都不看就更没有修改了,就只是增加自己的东西。
另外,用到了微软所独有的动态矩阵这种高科技,虽然ONLYOFFICE和WPS也都跟随了微软的动态矩阵这种功能,但是微软的动态矩阵具备动态溢出的功能,是ONLYOFFICE和WPS所不具备的功能,我直接拿微软做的这个xlsx文件放在ONLYOFFICE里面打开进行再开发,是否还能原样打开这个表格文件不损伤它的功能,在我的理解,理论上是可能要打折扣的,但不管怎样,实践出真知:
完美打开!ONLYOFFICE对微软独门绝技的领先技术制作的文档可以完美解析执行渲染出正确的计算结果!
我仔细G00G1e过了,即使是微软的Excel的日期部分的函数,也没有直接把公历日期转换为农历日期的函数,因此,更不用惦记ONLYOFFICE的函数能有直接转换函数了,这必须得自己手编了,我先把最终结果的视频放上来吧:
自研的xlsx中公历转农历的算法公式的使用效果
可以看出,自己编的公式可以方便的把公历日期转换为农历日期!订阅我公众号的读者朋友们很多都是高智商会研究数理原理的,因此这里展开一下转换细节吧
为了让最终只打印需要打印的月历部分而不打印计算方法,我把复杂的计算放入单独的表格页,算法调试完成后把计算页隐藏,即可,那么大家就需要在标签页栏右键单击从右键菜单中把隐藏的表格页显示出来,不知道这一点的话,你们会根本找不到计算方法是如何实现的。
公历日期转换为农历日期,我G00G1e过了,完全按照历法来写算法太复杂,编程界常用的方法是暴力查表法,直接把原始数据编制大表,然后编简单算法直接查,但是这就意味着在xlsx里面一年我就要创建一个365行的大表,如果明年年底再要扩展生成后年2025年的年历,就再增加365行,因此,如上图,我折衷了一下,如上图所示,输入了一个仅仅13行的原始数据的表,配合此表编写了一个还不算太复杂的计算公式,从公历计算农历日期,这样,自己明年只需要在此13行表下面再加12行数据就可以生成明年的年历日记本了。
为了简化表格里公式的复杂度,大量使用了矩阵区域命名,这样本来需要在公式里面出现的超级长的矩阵,变简化为一个一个名称直观的字符串:
在明年底制作25年年历的时候别忘了在这里把名称的定义也一起扩展12行的操作。
这个纯粹的原始数据表的编制,F列,是农历的每一个月的初一,从此开始,D列是查表查出来的,依据F列的农历每一个月的第一天初一,事先在网络上的各种万年历查询网站查找到对应农历的每月初一是公历的哪一天,填写如D列对应的行,然后使用B23格子的公式来计算任意公历日期的对应的农历,DEF三列可以继续向下扩展,如果你需要用此文档作为模板来生成后续年份的日历,B23格子从左侧A23格子公历转换出农历的公式为:
=INDEX(农历月首,XMATCH(A23,公历换算绝对值,-1))+DAYS(A23,INDEX(公历日期换算值,XMATCH(A23,公历换算绝对值,-1)))
使用到了今年6月份最新增加的Xmatch函数: ONLYOFFICE最新7.4版表格编辑器的新增函数的使用详解
这个公式,依据输入公历的日期,查找这个日期属于哪一个农历月的区间,然后计算这个日子已经过了这个农历月的月首的公历日期多少天,就是这个日子是这个农历月的初几了,完了?没完!
农历有农历专门的说法,前十天叫做初几号,中间十天就不能叫初多少了,二十多号要么叫做廿三、廿四号,要么简化叫做二三、二四号,并不是简单的阿拉伯数字一个加一个,因此,还专门制作了一套名称表页:
专门定义了农历月里面每一天叫什么名字、每一个月叫什么名字、西洋每个礼拜里面的每一天叫什么,假如你要把星期日改成礼拜天,可以在A7里面修改这一处,然后整个年历里面的每一个星期日就都自动更新为礼拜天三个字了。
最终,在年历的每一个日期的农历格子里面,就有了农历的日子:
=INDEX(初几,DAY(INDEX(农历月首,XMATCH(E5,公历换算绝对值,-1))+DAYS(E5,INDEX(公历日期换算值,XMATCH(E5,公历换算绝对值,-1)))))&" 王母诞"
公式末尾还可以添加额外字符串来表示节庆信息。完了?
没完!公历的闰月是历法中最大的坑之一:众所周知,公历的2月只有28天,闰年的2月有29天,而农历的闰年闰月则不是这样的规则,农历的2月是有30天的,所以上面的公式在下面的格子会出bug变成农历三月初一,所以这个格子直接手动修改为三十:
淘宝上卖的日历本都会有这种东西,让你可以随便记录一些你需要记录的东西的数值的每天的变化,比如所关注的股票的涨跌什么的。就是横竖交叉直角坐标系的坐标纸,每个月有多少天就横向有多少格子,每天对应横坐标上的一个坐标点向上延伸的竖直线。非常简单
除了公历、农历之外,我一直想专门为Basal body temperature制作历法表格,这里算是一个尝试吧,不懂得就算了,懂的好友们自然都懂,科学解释不再细讲,这里仅仅给出一个参考文献吧,见文末参考文献第一条。在古代这种东西都是手动记录算账的,例如帝王家的《起居注》,所以看参考文献第一条就会发现,该条目对应的中文版本实际上比英文版本更加的全面严谨学术,咱们东方自古以来科学就是比西方发达先进的,但为了和谐还是推荐英文版本的,后来有了互联网,自己发现在中文互联网世界里面最早是维某少某屋网站推出了该功能,试着用了,然后该网站被咱妈给封了,然后进入智能手机时代,自己发现某姨妈软件提供类似的功能,试着用了,然后某姨妈越来越不正经,像所有国产app一样踏上歪门邪道之路,并且凭着某姨妈的本性在歪门邪道之路上尤其走的邪门,于是自己也弃而不用它了!因此,在这里自己不能细讲科学原理,会被封杀的,早先我一个做飞行仿真的同事,辞职后自己创业卖类似的东西后来就被失联了,所以这里仅仅介绍在ONLYOFFICE表格里面如何制作B历的。
欢迎关注我的公众号!最终设计稿是这样的,然后付诸实物是这样的:
这不是新冠发烧记录用的!这也不是圆形的飞行员领航计算尺!这个书签是专门配合B图使用的刻度尺,打印至A5贴纸,减下来沿中线对折贴紧,或者打印到较厚纸上剪下分离后对着粘上
圆心对正,寻找在哪一个圆上标绘点迹。还是那句话,懂的都懂,绘制出来的圆形,根据长期记录监测下来的椭圆的椭圆度的大小,前后多个椭圆的旋转趋势,就可以判断出很多有意义的信息来,例如之前自己用在线表格研究的川普模拟器、现在用ONLYOFFICE在线表格跟踪研究的鹰酱姬态势一样。
无论是上面的多功能月度曲线图,还是这个B历极坐标圆曲线图,首先都是这样创建一个坐标系网格表页,没错,b历数到最后是第14月。
选择图标类型为雷达图,之前介绍过这里不再细讲:
如何用最新的7.4版本ONLYOFFICE绘制雷达图进行分析
需要非常精心的配置这个图表的各种细节属性参数才能做出上面这样的设计。
没错,即使是上面这个书签这么复杂的设计,也不是用幻灯片编辑器做的而是用表格编辑器做的,就是为了精确对应曲线图能做量测使用:
再回到微软Office的Excel,在新建文档的时候,并不需要自己从零开始制作,而是可以选择从表格模板来创建:
这个表格模板,是xltx后缀名文件,在网上的一些素材资源库或者微软的素材资源库下载可能会遇到该类型的文件,下载下来存到电脑里面相应的路径,就可以在微软Excel打开时候自动列出来表格模板。
好消息就是,ONLYOFFICE的表格编辑器,就可以把表格文件另存为表格模板格式xltx文件:
只需要在你使用ONLYOFFICE在Windows操作系统的路径:
c:\Users\你的名字\Documents\自定义?Office?模板\
下面另存为.xltx电子表格模板文件,即可在微软Excel里面使用你用ONLYOFFICE创建的表格模板来创建新文件了。另外,这个任意年份的日历表的电子表格模板文件我也已经上传到我的协作空间公共房间里面了,欢迎大家直接下载使用。
最终目标是确定的,就是打印装订成册,因此,电脑里面并不是必需做成一个文档,可以做成多个文档,分别打印出来,然后合并装订,这样会比较方便设计制作,日记部分就又是另作文件了。
日记本部分就是每天记日记的部分,可以是每天一页也可以是两天一页,国内军迷朋友们有一句玩笑话“正经人谁记日记啊!”,意思是讽刺蒋公日记意淫,自己才不会那样呢,自己只是辅助手机炒美刀炒航油在日记本记一些操作,不会写太多,因此设计成两天一页纸,最终设计稿如下图所示:
制作它同样还是使用ONLYOFFICE的表格编辑器,直接套用制作年历部分所研发的各种算法,生成日记页的全部内容。一年365天,那就得做183页表格页吗?不需要,那也太多页了,并且我最终是导入到ONLYOFFICE的docx文档编辑器中排版输出为上图中的pdf文件去打印的,所以,我的日记部分表格文件仅仅专门做一个日记单页生成器,没看懂?直接看视频吧:
从xlsx导出到docx的按键精灵加速器效果
视频全程无加速!键速赶超微尔莉特伊芙嘉登!
仅仅是肉身无法达成这样的键速的,与薇尔莉特一样,自己也给自己造了趁手的工具提高效率,每日日历都做出来未免低智而高劳,因此,这里制作的是单页生成器,生成的单页,复制到那个docx里面作为一页,然后再回来生成下一个单页复制过去,当然,这个过程,自己是用按键精灵写了一个辅助操作脚本程序的,
最后,仅仅花了不到一个小时就人机协同完成了一年365天地日记框的页面制作,按键精灵的脚本程序自己也一并上传至该协作公共房间了,关于按键精灵软件,可以参考之前的图文:
既实用表格编辑器计算,又使用表格编辑器初步排版,一个技巧就是把一些格子的内容的文字颜色涂白:
在你下载到这个文件的时候别以为找不到计算公式,用鼠标选中那些看似空白的地方点一下,公式栏里面就会显示出真实的公式了。
页脚既是页码,也是当前日期是一年内的第多少天,距离第二年还剩多少天的信息,同样由公式自动计算生成。最后没有办法只能手动修改的是各种节假日信息:
既然最终目标是打印出实体,那么就是用docx格式输出pdf格式,但还是试了一下存为表单格式doxf格式,测试一下是否能做成电子表单功能的日记本:
确实可行!使用文字段落,勾选上“固定大小字段”、“自动调整”、“多行文字字段”,就可以方便调节文本文字框大小尺寸了。但毕竟自己不需要,并未制作完整的电子表单版本的年历日记本,大家谁有兴趣的花可以继续完成它吧。
封面就很简单了,网络上面随便找一个素材,2024年是农历甲辰年龙年,那就随便找了一只龙的图案:
同样的,坚决不用百毒,直接打开微软三件套里面任意一个,插入图片来源于网络,想搜什么搜什么,看哪个顺眼就插入进来把图片另存到电脑里面就可以用了,非常方便,友情提示,此操作还是需要咳血伤亡,不需要咳血伤亡而能搜索的大概率中枪四姐马科腚、屎撅我国之流的版权大流氓恭喜你喜提巨额罚款,只有花费了稍许软妹币的咳血伤亡你才能找到真正免费合法使用的各种资源素材,还真的是那句话,那些看起来似乎是免费的东西实际上是最贵的。
玩软件的最终目标往往就是变成实物,之前自己在公司里面做嵌入式系统开发,写的是C代码,最终是下到板子上调触屏上的中文编辑框,而这次,是做成实体的年历日记本,每一个Office软件大佬,都必须同时是打印机的资深玩家。最常见的A4幅面的纸张直接制作,未免尺寸太大,搜了一下打印纸张的各种大小尺寸,最终选择A5型号的纸张,A5型号纸张和自己之前淘宝买的年历日记本恰好尺寸大小都类似,最关键的是,A5的长度和宽度,可以从A4纸张对折裁剪得来,非常方便,自己的家用打印机后面现成的一大摞A4打印纸,因此,上面的所有步骤中,无论是文档编辑器还是表格编辑器,都在版面设置中选择了A5:
一年365天,如果单面打印就会太厚,因此,全都双面打印,但是自己的打印机不支持自动双面,就只能自己手动双面打印。
使用PDF Exchange Viewer阅读器软件来打印,其打印设置功能非常全面,如上图所说,选择仅打印指定范围一月份之内的单数页,打印出来手动翻面再塞回打印机如纸口,就可以再打印该范围内的双数页,但问题是,手动翻面,向哪个方向翻?对于支持双面打印的打印机来说,也需要特别注意是长边翻转的双面还是短边翻转的双面:
更何况手动翻转,需要脑海里面有极高的空间想象处理能力,你自认为脑袋不够用的话,也不要紧,可以单独专门制作一个辅助定向页面:
先打印出来,不要从出纸口抽走,就留在出纸口不动,然后每次翻转打印第二面的时候对照着这张纸来判断怎么塞,就方便多了:
多个pdf电子文档打印出来后,手动插入各页:
每月月首放入当月月历,后面跟着当月的七八页日记页,B月历则插到每B月首日期页处。然后就是自己装订了,然而这个厚度,无论是自己的订书器,还是推夹器,还是抽杆夹还是燕尾夹,统统夹不住,太厚了,只有自己的A5活页夹能hold住。
但是活页夹的麻烦就在于,得先在纸上打孔,这可难不倒我,自己这里打孔器也是现成的:
你别问,我家有学渣,学渣文具多,要啥有啥,所以才能最终零成本制作这本年历日记本,你们学霸们就羡慕我去吧!
把A5活页本拆开,拿出一页,对齐到要打孔的一小摞年历日记本上,一次打不了太多页,也就五六页,为了对齐打孔,用燕尾夹把这一摞对齐夹好:
然后再用打孔器一个孔一个孔打过去,然后插入到活页夹上:
最终成品:
A5长边活页标准的活页孔数是20,这么多页打起来是最费功夫的,其实还有一个简化的方法,使用活页随意圈,用几个就只打几个孔。
这就是活页随意圈,随意穿几个固定起来不会散落就可以了:
但是这样它的皮不是硬皮容易卷边,那就去楼下打印社要一张重克数的A4后纸回来自己做硬皮好了。自己使用还是用那个硬塑料皮的活页夹了。
最终成品实物,自己用一个,而制作过程的所有这些Office电子文件,都上传到了自己协作空间的公共房间了,好友们可以下载下来直接打印装订,也可以学习里面的编程代码,留着明年后年继续生成年历日记本,或者扩展开发,并且所有文件都同时支持ONLYOFFICE和微软Office打开使用。公共房间的链接我放在了下面资源共享/下载部分了。