公历有2月29日的闰年是哪三个生肖年?

一般的,能被4整除的年份是闰年,不能被4整除的年份是平年.如:1988年2008年是闰年;2005年2006年2007年是平年.但是如果是世纪年(也就是整百年),就只有能被400整除才是闰年,否则就是平年.如:2000年就是闰年,1900年就是平年
闰年的2月有29天,平年的2月只有28天.

1. 数据的有损压缩:对多媒体数据进行有损压缩时,以少量数据丢失作为代价的,比如对某8 bit量化缩为6 bit量化,其算法可简单表示为:逐一删除各个字节的后2 bit,将删除后的6 bit数据首尾相连,然后重新按照8 bit一组构建字节,以十六进制显示。

例如,压缩前的原始数据为:

删除每字节的后2 bit:

首尾相连构建新的数据:

自此,原数据进行了有损压缩。程序运行界面如下所示,

实现上述算法的VB程序如下,但程序中加框处有误,请改正。

'trim()用于删除前导空格

最近做到一个项目, 需要阴历与阳历的相互转换, 网上找了很多资料, 发现很多都是不准的, 但是给了我参考价值

太阳历又称为阳历,是以地球绕太阳公转的运动周期为基础而制定的历法。
太阳历的历年近似等于回归年,一年12个月,这个“月”,实际上与朔望月无关。
阳历的月份、日期都与太阳在黄道上的位置较好地符合,根据阳历的日期,在一年中可以明显看出四季寒暖变化的情况;但在每个月份中,看不出月亮的朔、望、两弦。
如今世界通行的公历就是一种阳历,平年365天,闰年366天,每四年一闰,每满百年少闰一次,到第四百年再闰,即每四百年中有97个闰年。公历的历年平均长度与回归年只有26秒之差,要累积3300年才差一日。

希吉来历系太阴历,其计算方法是: 以太阴圆缺一周为一月,历时29日12小时44分2.8秒,太阴圆缺十二周为一年,历时354日8小时48分33.6秒。每一年的12个月中,6个单数月份(即1、3、5、7、9、11月)为“大建”,每月为30天; 6个双数月份(2、4、6、8、10、12月)为“小建”,每月为29天;在逢闰之年,将12月改大月为30天。该历以30年为一周期,每一周期里的第2、5、7、10、13、16、18、21、24、26、29年,共11年为闰年, 不设置闰月,而在12月末置一闰日,闰年为355日,另19年为平年,每年354日。故平均每年为354日8小时48分。按该历全年实际天数计算,比回归年约少10日21小时1分,积2.7回归年相差一月,积32.6回归年相差一年。该历对昼夜的计算,以日落为一天之始,到次日日落为一日,通常称为夜行前,即黑夜在前,白昼在后,构成一天。希吉来历每年9月(莱麦丹)为伊斯兰教斋戒之月, 对这个月的起讫除了计算之外,还要由观察新月是否出现来决定。 即在8月29日这天进行观测,如见新月,第二日即为9月1日,黎明前开始斋戒,8月仍为小建; 如不见新月,第三日则为9月1日,8月即变为“大建”。到了9月29日傍晚,也需要看月,如见新月,第二天就是10月1日,即为开斋节日,使9月变成“小建”;如未见新月,斋戒必须再延一天,9月即为“大建”。 12月(祖勒·希哲)上旬为朝觐日期,12月10日为宰牲节日。该历的星期,使用七曜(日、月、火、水、木、金、土)记日的周日法。每周逢金曜为“主麻日”,穆斯林在这一天举行“聚礼”。

借用: 这里的解释: 要想计算给定的时间对于的农历是哪一天,我们需要找一个参考时间,然后以该参考时间计算以后的时间。首先计算当前时间与参考时间相差的天数,然后通过求出农历每年的天数,计算当前时间对应的是哪一年的第几天,最后计算出属于那个月的哪一个日期。

目前的做法是 阴历年份 - 1900 + 36 然后除以 12 取余数, 得出生肖属相的序号, 至于为啥这么计算, 我是没搞懂, 网上也搜了很多也没说清楚, 这里参考文章:

// TODO 至于为什么这样弄, 我也没搞清楚

网上搜到的做法是用公元年来计算, 但是不对, 然后我换成阴历年居然就跟百度的日历能对上了, 这个我也没弄清楚, 但是能算出来了, 公式: 年数先减三,除10余数是天干,基数改用12除,余数便是地支年 (如果余数为 0 ,则取最大序号)

// 年数先减三,除10余数是天干,基数改用12除,余数便是地支年 (如果余数为 0 ,则取最大序号)

网上搜索了, 没找到好的实现方式, 麻烦知道的在这里说一下,

其中C 是世纪数减一,y 是年份后两位,M 是月份,d 是日数。1月和2月按上一年的13月和14月来算。奇数月i=0,偶数月i=6。G 除以10的余数是天干,Z 除以12的余数是地支。

但是不对, 麻烦有懂也告知下

PHP 的实现完整代码

// 您输入的闰月标志有误 // 检查日期是否大于最大天 // 不合法的农历日期 } else { //当年有闰月,且月份晚于或等于闰月 // 不合法的农历日期 } else { // 如果需要计算的是闰月,则应首先加上与闰月对应的普通月的天数 // 不合法的农历日期 * 把阳历转换为中文的阴历 * 阳历转换为简单的中文阴历 * 阳历转为正常的阴历 * 计算当前日期的阴历 //设定当年是否有闰月 * 计算阴历年的总天数 * 计算阴历年闰月多少天 * 计算阴历年闰哪个月 1-12 , 没闰传回 0 // 年数先减三,除10余数是天干,基数改用12除,余数便是地支年 (如果余数为 0 ,则取最大序号) // TODO 至于为什么这样弄, 我也没搞清楚 * 把天转换为中文字符

我要回帖

更多关于 闰年怎么确定闰几月 的文章

 

随机推荐