中國(guó)公歷算法
中國(guó)公歷算法不是太難,要害是星期值的確定。這里給出了簡(jiǎn)單算法:
public static int dayOfWeek(int y, int m, int d) {
int w = 1; // 公歷一年一月一日是星期一,所以起始值為星期日
y = (y-1)%400 + 1; // 公歷星期值分部 400 年循環(huán)一次
int ly = (y-1)/4; // 閏年次數(shù)
ly = ly - (y-1)/100;
ly = ly + (y-1)/400;
int ry = y - 1 - ly; // 常年次數(shù)
w = w + ry; // 常年星期值增一
w = w + 2*ly; // 閏年星期值增二
w = w + dayOfYear(y,m,d);
w = (w-1)%7 + 1;
return w;
}
中國(guó)農(nóng)歷算法
根公歷相比,中國(guó)農(nóng)歷的算法相當(dāng)復(fù)雜。我在網(wǎng)上找的算法之中,eleworld.com 的算法是最好的一個(gè)。這個(gè)算法使用了大量的數(shù)據(jù)來確定農(nóng)歷月份和節(jié)氣的分部,它僅實(shí)用于公歷 1901 年到 2100 年之間的 200 年。
中國(guó)農(nóng)歷計(jì)算程式
跟據(jù) eleworld.com 提供的算法,我寫了下面這個(gè)程式:
[Html]
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注