从做了个倒数日小助手,到了解农历(农历≠阴历) | 附永久码

2022-08-15 16:54:45 +08:00
 jackyin

之前,一直以为农历和阴历是一回事。

在做这个倒数日小助手的时候,为了支持农历,查了一些农历的知识,发现它俩原来不是一回事儿.

趁此机会,简单写一下,加深下自己的理解,知识这种东西,写一遍就会加深自己的学习效果,写的过程,自己就得努力把知识捋一下。所以这段时间在学习 SwiftUI 的过程中,就是多写 App 。

开发时,在寻找支持农历途径的过程中,发现 SwiftUI 里 DatePicker 是可以指定不同的历法的,而且还不少,标准的 iso8601 ,中国的 chinese ,甚至还是民国的 republicOfChina ,还有印度的 indian ,还有很多,原来这世界上有这么多历法,也就是说,如果要做一个全球通用的小日历,很不简单。

历法很多,但计算的过程大多离不开日月转动规律(在那个年代,日月都是围绕地球转的)。以太阳转动为基础的历法叫阳历,以月亮转动为基础的历法的叫阴历。

首先来讲讲阳历,阳历中的 1 年就是地球绕太阳一圈,使用阳历可区分一年四季,阳历可指导农业生产。由于计算阳历跟月亮无关,所以看阳历时间是知不道月圆的。

再说阴历,阴历就是根据月亮的圆缺来计算的。由于计算阴历跟太阳无关,所以只看阴历是无法区分一年四季的,也无法指导农业生产。

最后说说农历,农历不仅可以区分一年四季,还可知晓月圆,很强大,同时也很复杂,我在查资料的过程中发现,微软、苹果都有过将农历算错的 Bug 。

既然农历,又知四季,又晓月圆,如此农历又可被称作阴阳历。那么农历又是如何将阳历与阴历结合的呢?

首先,我们在阳历上使用了节气,用立春、立夏、立秋、立冬来区分四季,然后再进行均分,得出二十四节气,以此作为农业生产依据。

然后,我们又在阴历上使用月亮圆缺来记日子。

不知道大家有没有发现,中国的好多节日用的是阴历,比如春节正月初一、端午五月初五、七夕七月初七,但有个节日比较特殊,就是清明节,它其实是一个节气,节气是用的阳历,所以清明节对应的公历时间在 4 月 5 号左右。

二十四节气中有个比较特殊的节气,就是小满,因为小暑、小雪、小寒都有对应的大暑、大雪、大寒,只有小满,没有大满,大满则溢,所有小满即可。中国人在表达幸福的时候喜欢加个“小”字,比如小幸福、小确幸、小甜蜜、小美好,这不仅是人们对当下幸福的满足,也许也带有害怕失去幸福的忧心在里面吧。

在使用 SwiftUI 的 DatePicker 时,还遇到了另一个奇怪的问题,就是农历的年份永远是 1 到 60 ,经查资料,农历的年份的确只有 1 到 60 ,60 年为一甲子,由十天干(甲、乙、丙、丁、戊、己、庚、辛、壬、癸)与十二地支(子、丑、寅、卯、辰、巳、午、未、申、酉、戌、亥)按顺序两两相配得到,今年( 2022 年)为壬寅年。

组合一下,第一个就是甲子年,最出名的一个甲子年(公元 184 年)大家应该都听过:“苍天已死,黄天当立,岁在甲子,天下大吉”。

下一个甲子年是公元 2044 年。

最后介绍下我做的倒数日小助手吧,比较简单,没什么独特,就是记记重要日子,使用了 iCloud 自动云同步数据,花了几天做的,学习了下 App Groups 和 Widget 的一些知识,App 与小组件间共享数据需要用到 App Groups 。

接下来,可能会做一个记账 App ,因为要学习下 CloudKit 多人实时共享私有数据,用家庭共同记账的使用场景来练习,理论上路线应该是对的,不知道效果如何,大概查了下资料,貌似 CloudKit 多人实时共享私有数据貌似比较麻烦,有熟悉的大佬帮忙指点一下吗?非常感谢。

倒数日小助手

https://apps.apple.com/cn/app/countdown-helper/id1637793913?platform=iphone

使用促销码的方式

打开 App Store -> 点击右上角头像 -> 点击兑换礼品卡或代码 -> 输入代码即可。

进入 app ,点下恢复购买就可以生效啦。

促销码

使用后请留言附上已使用的码,不然会导致很多人在不停的尝试无效码。

3AYJ467YFP3X

J79A7TNK966T

TF3JHM6ALHA6

H3RX9F3HFMP7

YKAMH7M6NAKH

X476HT743M6E

3KJ99LNFYKN4

9LNAA93JLMK3

T6E94MTJ94L3

XKA9PREX3WNY

T7NFW36J47W7

AJLELEXFNE4E

3L7EAHKMANX3

KMJAF7RWKL6E

6RXW6WKKERWF

9JWP99TFLPRK

HN3P3P374XJP

TW3P6HMT73YK

WN7LH4XJFYFP

7XYAJPF9PHYH

RNPFNE9R3HLT

7EXHMMX794JJ

KXFY9L9Y4WK3

MXMANHH4NLLP

6ETFEJJNL6AL

YKE9TWTK9P76

J74KPEWYFAWP

WR6YTEMWK4LT

PRP3N7APEMXF

EL3EMMFKRPMM

J69LWN347NYJ

HAF6JR6MR37A

FTKX7WJHTA3L

RPFL9L3PT4AH

X9JKNH67MHW9

9WXTRE76FNLK

R7HPP4TRFF6T

HYT4FM7TJWK4

WXYTY9L473XE

MP4PXF97TK7A

T6FLMLPL6PLA

F9WALPRYRY6E

6YW9NHREWXRW

4PWYAJHF7FEM

4JNTYTY4NP7Y

94RTHR3KY96K

T34MLJHJFKYK

FK3PKFMN9EEX

KAM79XFEYL4Y

MMNNRFT933LX

RMM766WK4F7W

363T4JAJRKNH

LN63YX3A7EPL

EJLX76NHFMEY

64M7LFLETWTE

9Y3M6K9MHMKA

WF4XJ3TTE67M

376H6MPE7ER4

R3FA7LFXWEH6

6A36RRJTRE7N

MHY9LJFPTJLA

7JHYF4HLKYYK

PEYW3RWXKJRX

4KM3MRR6F6WH

XPYLEEPRXRK3

TX3M77KP39YE

T4AEXHT6PJHF

JAN7AT3AY699

EWEEX9JFX3LP

JL3M4976ELLM

KJT3EFAMAPAX

MR9K49H6RAA3

HYJP7K3P99RX

XHL3KYPLY4W6

4KE64W6WN3XW

EYJW7PKKRF7Y

H6TTXXXME36J

RWAYX7YAFYXY

J7E3XJNMTKWW

H6XFTYHLHJ7A

9L4AW44AX6X3

FF33NMTW7JYT

MTJFJ9AH33Y9

Y3H3JM6FWTXW

XN3T3K7J4NNJ

WHEKFF6EXJW6

JKJNPKK6RP7A

9HPW93TK4M7E

L96YY3X3F6LJ

RER679FRMK9F

开发者们的小世界

创建一个独立开发者的 QQ 交流群(群号:1169775881 ),微信群 200 人就要手动添加,很是麻烦,趁此机会重新创建一个 QQ 群吧,大家可以交流交流吐槽吐槽,互相看的上的也可以一起搞搞。

诸事顺遂,贵体康泰。

5002 次点击
所在节点    分享创造
72 条回复
wwweng
2022-08-15 18:09:40 +08:00
XKA9PREX3WNY 已用
biidbiid
2022-08-15 18:12:01 +08:00
HAF6JR6MR37A 已用 感谢
lockheart
2022-08-15 18:12:12 +08:00
T6E94MTJ94L3 已用,感谢开发者
zimingw
2022-08-15 18:19:54 +08:00
9Y3M6K9MHMKA 已用,感谢
sanking
2022-08-15 18:24:43 +08:00
R7HPP4TRFF6T 已用 感谢🙏
id3day
2022-08-15 18:25:45 +08:00
EWEEX9JFX3LP 已用,谢谢开发者
xiaweian
2022-08-15 18:29:32 +08:00
感谢开发者
MHY9LJFPTJLA 已用
yasumi
2022-08-15 18:30:02 +08:00
JL3M4976ELLM 已用,感谢开发者
alodaner
2022-08-15 18:33:53 +08:00
KXFY9L9Y4WK3 已用 ,感谢
MuskDu
2022-08-15 18:36:38 +08:00
JL3M4976ELLM 已用 感谢🙏
AlphaGe
2022-08-15 18:51:42 +08:00
9JWP99TFLPRK 已使用,感谢
BlueZone1
2022-08-15 18:54:22 +08:00
XPYLEEPRXRK3 已用,感谢
Xylon
2022-08-15 19:03:01 +08:00
T4AEXHT6PJHF 已用,感谢开发者
MEOWwONE
2022-08-15 19:07:11 +08:00
YKE9TWTK9P76 已用,感谢分享!
kalista
2022-08-15 19:11:36 +08:00
HN3P3P374XJP 已用,感谢分享
jonathanchoo
2022-08-15 19:12:04 +08:00
XR 15.6 系统 闪退
yipein
2022-08-15 19:13:30 +08:00
9WXTRE76FNLK 感谢
dazkarieh
2022-08-15 19:25:52 +08:00
KAM79XFEYL4Y 已用,感谢
Kenworthy
2022-08-15 19:32:21 +08:00
MR9K49H6RAA3 已使用,谢谢
Dashy
2022-08-15 19:45:08 +08:00
4KM3MRR6F6WH 已使用,感谢

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/873011

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX