在Linux下用Shell程序编写实现如下功能:从键盘上输入年份和月份,显示当月月历(公历或农历皆行).

在Linux下用Shell程序编写实现如下功能:从键盘上输入年份和月份,显示当月月历(公历或农历皆行).,第1张

#!/bin/bash

while [ true ]

do

read -p "请输入年份和月份,用空格分割,比如 2015 1,输入end结束 :" year mon

if [ "$year" == "end" ]then exitfi

cal $mon $year

done

阳历和阴历之间是不能换算的,二者采用的计算方法不同,没有特殊关系可以查询,只能分别计算。公历是阳历的一种,阳历就是以地球绕太阳公转的运动周期为基础而制定的历法。中国农历中每月的天数是根据月亮运动周期确立的,平均每月29.5306日。一年12个月只有354.3672天。而以地球围绕太阳公转时间确定的公(阳)历,一年有365.2422天。这样,按农历计算,一年的天数比公历就少了10.875天,差不多是11天19年就少了209天。按农历每月30天计,209天除以30是6.9666。也就是说,在19年中,农历时间比公历差不多少了7个月。为了补上7个月,农历采取了设置闰月的方法——19年七闰。即在农历的19年中,有12个每年12个月的平年,和7个每年13个月的闰年。闰年分别为第3、5、8、11、14、17、19年。这样一来,19个公历年的日数和19个农历年的日数就差不多相等了这样一算,公历所对应的农历日子,每19年轮回一次。因此,人们每逢19的倍数生辰的时候,生日当天有可能既是农历生日又是公历生日。但因为农历与公历的准确天数都不是整数,农历和公历在19年中的天数也有细微的差别。经过几十年甚至上百年的积累,当小数变成了整数时,两种历法生日才会完全重合更多的时候是相差一天。另外值得一提的是,2月29日出生的人,在76岁那年,两种历法生日才有可能重合.我就是没有重合的那一个。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7420166.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-05
下一篇 2023-04-05

发表评论

登录后才能评论

评论列表(0条)

保存