java 农历代码的十六进制是做什么用的

来源:百度知道 编辑:UC知道 时间:2024/07/04 22:51:37
我刚学习java编程,在网上找到一份JAVA做农历的代码,开头有这么一段十六进制代码不懂,还有我运行时为什么会出现“你已覆盖了过期的API“ 请大虾帮忙~~~代码太长打不进来,代码的网址是http://hi.baidu.com/xxm0333/blog/item/0bf7bbeccfc1ef3d269791d1.html
谢谢~~回答了我加分~~:
final static long[] lunarInfo=new long[]
{0x04bd8,0x04ae0,0x0a570,0x054d5,0x0d260,0x0d950,0x16554,0x056a0,0x09ad0,0x055d2,
0x04ae0,0x0a5b6,0x0a4d0,0x0d250,0x1d255,0x0b540,0x0d6a0,0x0ada2,0x095b0,0x14977,
0x04970,0x0a4b0,0x0b4b5,0x06a50,0x06d40,0x1ab54,0x02b60,0x09570,0x052f2,0x04970,
0x06566,0x0d4a0,0x0ea50,0x06e95,0x05ad0,0x02b60,0x186e3,0x092e0,0x1c8d7,0x0c950,
0x0d4a0,0x1d8a6,0x0b550,0x056a0,0x1a5b4,0x025d0,0x092d0,0x0d2b2,0x0a950,0x0b557,
0x06ca0,0x0b550,0x15355,0x04da0,0x0a5d0,0x14573,0x052d0,0x0a9a8,0x0e950,0x06aa0,
0x0aea6,0x0ab50,0x04b60,0x0aae4,0x0a570,0x05260,0x0f263,0x0d950,0x05b57,0x056a0,
0x096d0,0x04dd5,0x04ad0,0x0a4d0,0x0d4d4,0x0

比如0x0b5a0,是个20位的二进制数,0-3表示当年有无闰年,有的话,为闰月的月份,没有的话,为0
4-15:为除了闰月外的正常月份是大月还是小月,1为30天,0为29天。
注意:从1月到12月对应的是第15位到第4位。一位一个月。

16-19: 表示闰月是大月还是小月,仅当存在闰月的情况下有意义。

1982年的数据是:0x0a974

0000 1010 1010 0111 0100

表示1982年的4月为闰月,即有第二个4月,且是闰小月。

从1月到13月的天数依次为:30、29、30、29、29(闰月)、30、29、30、29、29、30、30、30。

不明白百度HI我

原作者把1900年以来的农历情况用一些数值表示出来了,并不是真正计算得到的。
他的表示规则是:每个使用一个20位数字表示(2个半字节)。
最高4位为1时表示闰大月,为0时表示闰小月。
15-4这12位哪个位上为1,表示此月为大月,否则小月。
3-0这4位取值范围只要1-12,表示此年的闰月是几月。
一共150年的数。

1.感觉是故弄玄虚吧,那些16直接的东西,你也可以换成10机制的,我试了,可以换的,具体他的思想没怎么看是怎么个原理。
2.你已覆盖了过期的API,这个估计是因为你使用了过期的api导致的。
new Date(0,0,31);
The constructor Date(int, int, int) is deprecated
已经不推荐使用了。