比如:阳历日期为:2008-2-20请将此阳历日期转换为 阴历日期用javascript实现,等待中……

解决方案 »

  1.   

    引用:
    ------------
    tiandaqian 发表于:2008-02-20 23:12:303楼 得分:0 
    代码有,就是比较长,给你个网址不算侵权吧,haha 
    http://ark.hit.edu.cn/Pages/calendar.htm 
     
      

  2.   

    农历与公历的关联是告24节气关联的,重点理解这一句的用途:
    var solarTerm = new Array("小寒","大寒","立春","雨水","惊蛰","春分","清明","谷雨","立夏","小满","芒种","夏至","小暑","大暑","立秋","处暑","白露","秋分","寒露","霜降","立冬","小雪","大雪","冬至");
    var sTermInfo = new Array(0,21208,42467,63836,85337,107014,128867,150921,173149,195551,218072,240693,263343,285989,308563,331033,353350,375494,397447,419210,440795,462224,483532,504758);该算法里农历闰月是用数组列出的,重点理解这一句:
    var lunarInfo=new Array(
    0x4bd8,0x4ae0,0xa570,0x54d5,0xd260,0xd950,0x5554,0x56af,0x9ad0,0x55d2,
    0x4ae0,0xa5b6,0xa4d0,0xd250,0xd295,0xb54f,0xd6a0,0xada2,0x95b0,0x4977,
    0x497f,0xa4b0,0xb4b5,0x6a50,0x6d40,0xab54,0x2b6f,0x9570,0x52f2,0x4970,
    0x6566,0xd4a0,0xea50,0x6a95,0x5adf,0x2b60,0x86e3,0x92ef,0xc8d7,0xc95f,
    0xd4a0,0xd8a6,0xb55f,0x56a0,0xa5b4,0x25df,0x92d0,0xd2b2,0xa950,0xb557,
    0x6ca0,0xb550,0x5355,0x4daf,0xa5b0,0x4573,0x52bf,0xa9a8,0xe950,0x6aa0,
    0xaea6,0xab50,0x4b60,0xaae4,0xa570,0x5260,0xf263,0xd950,0x5b57,0x56a0,
    0x96d0,0x4dd5,0x4ad0,0xa4d0,0xd4d4,0xd250,0xd558,0xb540,0xb6a0,0x95a6,
    0x95bf,0x49b0,0xa974,0xa4b0,0xb27a,0x6a50,0x6d40,0xaf46,0xab60,0x9570,
    0x4af5,0x4970,0x64b0,0x74a3,0xea50,0x6b58,0x5ac0,0xab60,0x96d5,0x92e0,
    0xc960,0xd954,0xd4a0,0xda50,0x7552,0x56a0,0xabb7,0x25d0,0x92d0,0xcab5,
    0xa950,0xb4a0,0xbaa4,0xad50,0x55d9,0x4ba0,0xa5b0,0x5176,0x52bf,0xa930,
    0x7954,0x6aa0,0xad50,0x5b52,0x4b60,0xa6e6,0xa4e0,0xd260,0xea65,0xd530,
    0x5aa0,0x76a3,0x96d0,0x4afb,0x4ad0,0xa4d0,0xd0b6,0xd25f,0xd520,0xdd45,
    0xb5a0,0x56d0,0x55b2,0x49b0,0xa577,0xa4b0,0xaa50,0xb255,0x6d2f,0xada0,
    0x4b63,0x937f,0x49f8,0x4970,0x64b0,0x68a6,0xea5f,0x6b20,0xa6c4,0xaaef,
    0x92e0,0xd2e3,0xc960,0xd557,0xd4a0,0xda50,0x5d55,0x56a0,0xa6d0,0x55d4,
    0x52d0,0xa9b8,0xa950,0xb4a0,0xb6a6,0xad50,0x55a0,0xaba4,0xa5b0,0x52b0,
    0xb273,0x6930,0x7337,0x6aa0,0xad50,0x4b55,0x4b6f,0xa570,0x54e4,0xd260,
    0xe968,0xd520,0xdaa0,0x6aa6,0x56df,0x4ae0,0xa9d4,0xa4d0,0xd150,0xf252,
    0xd520);
      

  3.   

    另外,转一篇JK写的一些历法常的文章:几点天文历法常识
    曾碰到过好几个朋友,跟我硬拗节气跟公历有没关系的问题,
    故此感觉很多朋友天文知识不够,
    就顺便讲一下一些天文历法常识: ---------------------------
    1。公历和二十四节气 
    地球绕太阳转,轨迹为椭圆,周期为365.22XXXXX * 24 小时,
    公转面为黄道平面,
    近日点所在的那一天为公历元月一日 
      
    地球自转,
    当太阳在经过转轴的黄道面的正交面上时,为夏至冬至点。
    (由为自转轴并不平行于经过长轴的黄道面的正交面,所以近日点并不是冬至点。)
    以夏至点和冬至点为 x轴,每十五度一分,可以得到二十四个节气点。 
    地球公转,每年都一样,
    从近日点到各节气点的时间也是每年都一样,
    这样,我们就可以推算出二十四节气了。 
      
    ------------------
    2。农历和二十四节气
    月球绕地球公转,相对于地球,其周期为29。XXX * 24 小时;
    月球也自转,相对于一求来说,它的自转周期跟公转周期一样,所以我们不管什么时间看月亮,它上面的黑影形状位置都是一样的。 
      
    农历以月圆月缺来定月,所以一月要么是29天,要么是30天。
    每一个数对应的月都有一个中气点,假设某个月没有中气点,那就闰这个月,以保证这个数字对应的月份有一个中气点。 
    至于每月是29天或是30天,可能以前也算得不大准/或者后来有了变化,近代经过修正,通常用查表法来得到。 
      
    ------------------
    3。日食月食
    月亮的影子落在地球上,影子内的人就可以看到日食
    地球的影子落到月球上,地球上的人就可以看到月食
    所以:各地的人,看到的日食不一样,但看到的月食是一样的(只要能看到当时的月亮) 
      
    ------------------
    4。历法的修正
    地球公转自转并不是一成不变
    例如:
    慧星/小行星撞球,会影响地球的自转和公转;
    如果说地震导至喜马拉雅山垮塌,地球自转会加速;
    人类移山填海,也会让地球自转加速;
    南极的冰川融化,海平面升高,地球自转会减速;

    所以如果我们现在就定死一年为265.22XXXX,这也是不科学的,
    同样的道理,
    虽说我们可以从史书上看到某年某月某日某地发生日食,但是如果按现在的历法反推,很可能那年没有发生日食。 
      
    ------------
    一口气写了以上,不是专业人事,难免错漏,见谅。 
      
      
    固定链接
     
    http://jkisjk.spaces.live.com/blog/cns!758CACE25E89DD3B!380.entry