WEB开发网
开发学院WEB开发Jsp 中国年历算法和程式 阅读

中国年历算法和程式

 2008-01-05 18:31:40 来源:WEB开发网   
核心提示:中国年历算法和程式 本文摘自“和荣笔记 - 中国农历二百年算法及年历”中国公历算法中国公历算法不是太难,要害是星期值的确定,中国年历算法和程式,这里给出了简单算法: public static int dayOfWeek(int y, int m, int d) { int w = 1; // 公历一年一月一日是星期一

中国年历算法和程式

本文摘自“和荣笔记 - 中国农历二百年算法及年历”

中国公历算法

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

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 提供的算法,我写了下面这个程式:

以下是程序代码


[Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行]


中国二百年年历 1901 年至 2100 年

我用上面这个程式制作了二百年年历,1901 年至 2100 年,全部收录在这本书中。

年历格式说明:

农历日期列在公历日期后面。
节气用节气名称标明。
农历每月第一天用月份名称标明。
例如,2000 年一月的表达格式如下:
以下是程序代码


[Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行]


其中:

"1/25" - 表示公历 1 号和农历 25 号。
"立春" - 表示节气。
"腊月" - 表示农历 12 月第一天。

------
有关中国年历算法和程式的具体注解和二百年年历,请参考
“和荣笔记 - 中国农历二百年算法及年历”
- http://www.herongyang.com/year_gb/

Tags:中国 年历 算法

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接