首页 > 学院 > 开发设计 > 正文

中国农历二百年算法及年历程序分析一

2019-11-18 11:48:07
字体:
来源:转载
供稿:网友

中国公历算法

 

中国公历算法不是太难,要害是星期值的确定。这里给出了简单算法:

 

   public static int dayOfWeek(int y, int m, int d) {

      int w = 1; // 公历一年一月一日是星期一,所以起始值为星期日

      y = (y-1)%400 + 1; // 公历星期值分部 400 年循环一次

      int ly = (y-1)/4; // 闰年次数

      ly = ly - (y-1)/100;

      ly = ly + (y-1)/400;

      int ry = y - 1 - ly; // 常年次数

      w = w + ry; // 常年星期值增一

      w = w + 2*ly; // 闰年星期值增二

      w = w + dayOfYear(y,m,d);

      w = (w-1)%7 + 1;

      return w;

   }

 

中国农历算法

 

根公历相比,中国农历的算法相当复杂。我在网上找的算法之中,eleworld.com 的算法是最好的一个。这个算法使用了大量的数据来确定农历月份和节气的分部,它仅实用于公历 1901 年到 2100 年之间的 200 年。

 

中国农历计算程式

 

跟据 eleworld.com 提供的算法,我写了下面这个程式:

[Html]



发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表