作业帮 > 体裁作文 > 教育资讯

阴历阳历转换

来源:学生作业帮助网 编辑:作业帮 时间:2024/11/02 11:25:15 体裁作文
阴历阳历转换体裁作文

篇一:阴历阳历转换计算公式

1、阳历日期推算阴历日期的方法:

前已述及阴历日期是以月亮的圆缺为计月单位,其以逢朔为初一,以月望为十五(大月为十六日),以月晦为二十九日(大月为三十日)。

如要知道1984年6月8日是阴历几日?可以利用公式推算阴历日期:

设:公元年数-1977(或1901)=4Q+R

则:阴历日期=14Q+10.6(R+1)+年内日期序数-29.5n

(注:式中Q、R、n均为自然数,R<4)

例:1994年5月7日的阴历日期为:

1994-1977=17=4×4+1

故:Q=4,R=1 则:5月7日的阴历日期为:

14×4+10.6(1+1)+(31+28+31+31+7)-29.5n

=204.2- 29.5n

然后用29.5去除204.2得商数6......27.2,6即是n值,余数27即是阴历二十七日

2.公历换算为农历

二十四节气在黄道上的位置是固定的,但各年有平年和闰年之分,就使得回归年天数与实际天数不等,每年在日历上可差一天。这样可以将阴历经过?a href="http://www.zw2.cn/zhuanti/guanyuwozuowen/" target="_blank" class="keylink">我庹毓槟暝谙衷诘娜绽喜榈窖衾ㄑ衾荒晗嗟币趵脑率?365.2422/29.530588=12.36827个月)。例如,可先在1995年的日历上查得与(该年)阴历对应的阳历日期,这样就找到了临时落脚点,也就是找到了阴阳互换的关键。例如,可先以阴历四月初一(日)为引数,在1995年日历上查到对应的阳历为4月30日。由于已经计算出经过的月数,将经过的月数的尾数(小数)化为日,加在4月30日上,就得到经过(1995-1070)整年数的阳历日期,也就是起始阴历日期对应的阳历日期,即得到了待查的日期为4月30日加上0.64957×29.530588得到(1070年)5月19.1821840日。这样就得到了所给例子的阴阳历日期换算结果……”。 0.64957月的由来,

(1995-1070)×12.36827=11440.64957月

已知依泽公生于梁龙德二年(922)六月二十一日,依下表提供的2099年各月初一日的公历月日数,可以算出龙德二年六月二十一日的公历月日数

公元2099年农历各月初一日的公历月日

(2099-922)× 12.36827=1455.45379月

余数为 0.45379月 × 29.530588日=13.4O日

因2099年五月初一日(包括该年闯二月)在公历6月19日,加上计算所得的13日为龙德二年六月初一日的公历月日,即该年7月2日,则该年农历六月二十一日为该年7月22日。

3.计算结果的订正

实际上上列公历换算为农历时常有较大的误差,如熙宁三年四月初一日为公历1070年5月13日,而不是5月19日。通过中国历法所用的于支记日法求算所用两历的干支,对所求结果加以订正。

如,马依泽公生于回历310年3月20日,自回历历元起算共历日数为:

自回历元旦至其3月20日,共历79日。

自回历元年元旦至309年元旦,共历113个闰年196个平年。又回历历元在公历622年7月16日,已知该日的干支序数为50,癸丑日,减1(因自甲子起算),余49应加入下列算式中,

(309 × 354+113+79+49)÷60=1827.116667

0.116667 ×60=7

干支序数为7,即庚午日。

求公历922年7月18日的干支,儒略历900年的干支序数为:

900 ×365.25÷60=5478.75

余数为,0.75 ×60=45;

22年的于支序数为,

(22 × 365.25+7)÷ 60=134,余2.5按3计,式中的7,为儒略历元年元旦的干支序数;

又7月 1日自该年元旦起算共历182日,干支序数为2,再加17日为7月18日 (45+3+2+17)÷60=1,余7,

结果与回历计算所得相符,即依泽公生于回历310年3月20日,中历庚戌日。 4 求首朔干支[11]

以上计算所得的中历干支应为所求月内的几日,如对所求月首(即月初一日)的干支尚不清楚,则求得的干支不能算出它在月内的日数。

首朔是指农历每年冬至(平冬至)后第一个朔日,冬至都在农历年前的十一月,故首朔就是所求该年前的十二月初一日的干支。(历象考成后编》以雍正元年(172)冬至起算,其干支系数为32.12253,干支为丙申,而冬至后的 15.12633日为首朔,干支为壬子(33+15.12633)。自此可求算出 922年 7月即农历六月初一日的干支,以确定本文四·3节中所求的干支为该年六月第几日。求算过程如下:

先以1722减921所得之数称积年,积年乘岁实之积为经此积年所历日数,所历日数减32.12254之差被o后的余数再为o所减,所得之差就是922年冬至的干支(计算中向上推算或上考往古要用60减)。所历总日数减0.12254,再加上922年冬至之余数将所历总日数化为整数后,加上15.12633日所得之和用29.530588除之,除之所得余数,再加上龙德二年冬至干支,得首朔干支,首朔干支再加上 6 × 29.530588后,累减60而得的余数,为龙德二年六月初一日的干支,六月一日与月内干支差即为六月内的日数。计算过程如下:

[(1722-921)× 365.2423442-32.12254]÷60=4875.449784

0.44784 ×60=33.01269,干支序数已过33。当为34,丁西日,经与《中西回史日历》对照无误。再求922年首朔干支,

292 59.1O99一0.12254十0.01269=292559

(292559+15.12633)÷ 29.530588=990.4948

0.49498 ×29.530588=14.1510,再加34,合49,干支为壬子,所得与史书所载相同。[12]因首朔再过六个月方是龙德二年六月初一日,故

(49+6 ×29.530588)÷60=3,余46月83528,干支序数41为庚戌日,为六月初一日干支,再过二十日为六月二十一日,即马依泽公出生之日,

(47+20)÷60=1,余7,庚午日结果与回历、公历推算所得相同,即马依泽公出生于回历 310年 3月20日,农历梁龙德二年六月二十一日,公历922年7月18日。 计算中没有采用定朔与定气,可能有数时之差

篇二:公历农历转换方法

公历农历转换方法;公历农历转换方法?农历一直是老百姓较为熟悉的历法或者也叫阴历,而阳历是现代通用的历法,那么这二者之间有什么关系呢,农历转阳历有如何转换呢?这里小编就为大家介绍下究

竟农历如何转阳历!

要了解农历转阳历怎么转,首先我们要先弄清楚2个问题,那就是什

么是农历;什么是阳历,他们是以什么为计算依据的!

农历是我国采用的一种传统历法,又名夏历、中历、旧历,民间也有称阴历的。它用严格的朔望周期来定月,又用设置闰月的办法使年的平均长度与回归年相近,兼有阴历月和阳历年的性质,因此在实质上是一种阴阳合历。

农历依据是月亮的运动规律:月球运行的轨道,名曰白道,白道与黄道同为天体上之两大圆,以五度九分而斜交,月球绕地球一周,出没于黄道者两次,历二十七日七小时四十三分十一秒半,为月球公转一周所需的时间,谓之“恒星月”。唯当月球绕地球之时,地球因公转而位置亦有变动,计前进二十七度余,而月球每日行十三度十五分,故月球自合朔,全绕地球一周,复至合朔,实需二十九日十二时四十四分二秒八,谓之“朔望月”,习俗所谓一个月,即指朔望月而言。

阳历也就是公历,它是国际通用的。阳历以地球绕太阳转一圈的时间定做一年,共365天5小时48分46秒。平年只计365天这个整数,不计尾数;一年分做12个月,大月31天,小月30天,二月只有

28天。四年的尾数积累起来共1天光景,加在第四年的二月里,这一年叫做闰年。所以闰年的二月有29天。

篇三:公历和农历转换算法详解

公历和农历转换算法详解

//C51写的公历转农历和星期 #define uchar unsigned char #define uint unsigned int #include

/*

公历年对应的农历数据,每年三字节,

格式第一字节BIT7-4 位表示闰月月份,值为0 为无闰月,BIT3-0 对应农历第1-4 月的大小 第二字节BIT7-0 对应农历第5-12 月大小,第三字节BIT7 表示农历第13 个月大小 月份对应的位为1 表示本农历月大(30 天),为0 表示小(29 天)

第三字节BIT6-5 表示春节的公历月份,BIT4-0 表示春节的公历日期 */

code uchar year_code[597] = {

0x04,0xAe,0x53, //1901 0 0x0A,0x57,0x48, //1902 3 0x55,0x26,0xBd, //1903 6

0x0d,0x26,0x50, //1904 9 0x0d,0x95,0x44, //1905 12 0x46,0xAA,0xB9, //1906 15 0x05,0x6A,0x4d, //1907 18

0x09,0xAd,0x42, //1908 21 0x24,0xAe,0xB6, //1909 0x04,0xAe,0x4A, //1910 0x6A,0x4d,0xBe, //1911 0x0A,0x4d,0x52, //1912 0x0d,0x25,0x46, //1913 0x5d,0x52,0xBA, //1914 0x0B,0x54,0x4e, //1915 0x0d,0x6A,0x43, //1916 0x29,0x6d,0x37, //1917 0x09,0x5B,0x4B, //1918 0x74,0x9B,0xC1, //1919 0x04,0x97,0x54, //1920 0x0A,0x4B,0x48, //1921 0x5B,0x25,0xBC, //1922 0x06,0xA5,0x50, //1923

0x06,0xd4,0x45, //1924 0x4A,0xdA,0xB8, //1925 0x02,0xB6,0x4d, //1926 0x09,0x57,0x42, //1927

0x24,0x97,0xB7, //1928

0x66,0x4B,0x3e, //1930 0x0d,0x4A,0x51, //1931 0x0e,0xA5,0x46, //1932 0x56,0xd4,0xBA, //1933 0x05,0xAd,0x4e, //1934 0x02,0xB6,0x44, //1935 0x39,0x37,0x38, //1936 0x09,0x2e,0x4B, //1937 0x7C,0x96,0xBf, 0x0C,0x95,0x53, 0x0d,0x4A,0x48, 0x6d,0xA5,0x3B, 0x0B,0x55,0x4f, 0x05,0x6A,0x45, 0x4A,0xAd,0xB9, 0x02,0x5d,0x4d, 0x09,0x2d,0x42, 0x2C,0x95,0xB6, 0x0A,0x95,0x4A, 0x7B,0x4A,0xBd, 0x06,0xCA,0x51,

0x0B,0x55,0x46, 0x55,0x5A,0xBB, 0x04,0xdA,0x4e, 0x0A,0x5B,0x43, 0x35,0x2B,0xB8, 0x05,0x2B,0x4C, 0x8A,0x95,0x3f, 0x0e,0x95,0x52, 0x06,0xAA,0x48, 0x7A,0xd5,0x3C, 0x0A,0xB5,0x4f, 0x04,0xB6,0x45, 0x4A,0x57,0x39, 0x0A,0x57,0x4d, 0x05,0x26,0x42, 0x3e,0x93,0x35, 0x0d,0x95,0x49, 0x75,0xAA,0xBe, 0x05,0x6A,0x51, 0x09,0x6d,0x46,

0x54,0xAe,0xBB, 0x04,0xAd,0x4f, //1938 //1939 //1940 //1941 //1942 //1943 //1944 //1945 //1946 //1947

//1948 //1949 //1950 //1951

//1952 //1953 //1954 //1955 //1956 //1957 //1958 //1959 //1960 //1961 //1962 //1963 //1964 //1965 //1966 //1967 //1968 //1969 //1970 //1971

//1972

0x4d,0x26,0xB7, //1974 0x0d,0x25,0x4B, //1975 0x8d,0x52,0xBf, //1976 0x0B,0x54,0x52, //1977 0x0B,0x6A,0x47, //1978 0x69,0x6d,0x3C, //1979 0x09,0x5B,0x50, //1980 0x04,0x9B,0x45, //1981 0x4A,0x4B,0xB9, 0x0A,0x4B,0x4d, 0xAB,0x25,0xC2, 0x06,0xA5,0x54, 0x06,0xd4,0x49, 0x6A,0xdA,0x3d, 0x0A,0xB6,0x51, 0x09,0x37,0x46, 0x54,0x97,0xBB, 0x04,0x97,0x4f, 0x06,0x4B,0x44, 0x36,0xA5,0x37, 0x0e,0xA5,0x4A,

0x86,0xB2,0xBf, 0x05,0xAC,0x53, 0x0A,0xB6,0x47, 0x59,0x36,0xBC, 0x09,0x2e,0x50, 0x0C,0x96,0x45, 0x4d,0x4A,0xB8, 0x0d,0x4A,0x4C, 0x0d,0xA5,0x41, 0x25,0xAA,0xB6, 0x05,0x6A,0x49, 0x7A,0xAd,0xBd, 0x02,0x5d,0x52, 0x09,0x2d,0x47, 0x5C,0x95,0xBA, 0x0A,0x95,0x4e, 0x0B,0x4A,0x43, 0x4B,0x55,0x37, 0x0A,0xd5,0x4A, 0x95,0x5A,0xBf,

0x04,0xBA,0x53, 0x0A,0x5B,0x48, //1982 //1983 //1984 //1985 //1986 //1987 //1988 //1989 //1990 //1991

//1992 //1993 //1994 //1995

//1996 //1997 //1998 //1999 294 //2000 297 //2001 //2002 //2003 //2004 //2005 //2006 //2007 //2008 //2009 //2010 //2011 //2012 //2013 //2014 //2015

//2016

0x05,0x2B,0x50, //2018 0x0A,0x93,0x45, //2019 0x47,0x4A,0xB9, //2020 0x06,0xAA,0x4C, //2021 0x0A,0xd5,0x41, //2022 0x24,0xdA,0xB6, //2023 0x04,0xB6,0x4A, //2024 0x69,0x57,0x3d, //2025 0x0A,0x4e,0x51, 0x0d,0x26,0x46, 0x5e,0x93,0x3A, 0x0d,0x53,0x4d, 0x05,0xAA,0x43, 0x36,0xB5,0x37, 0x09,0x6d,0x4B, 0xB4,0xAe,0xBf, 0x04,0xAd,0x53, 0x0A,0x4d,0x48, 0x6d,0x25,0xBC, 0x0d,0x25,0x4f, 0x0d,0x52,0x44,

0x5d,0xAA,0x38, 0x0B,0x5A,0x4C, 0x05,0x6d,0x41, 0x24,0xAd,0xB6, 0x04,0x9B,0x4A, 0x7A,0x4B,0xBe, 0x0A,0x4B,0x51, 0x0A,0xA5,0x46, 0x5B,0x52,0xBA, 0x06,0xd2,0x4e, 0x0A,0xdA,0x42, 0x35,0x5B,0x37, 0x09,0x37,0x4B, 0x84,0x97,0xC1, 0x04,0x97,0x53, 0x06,0x4B,0x48, 0x66,0xA5,0x3C, 0x0e,0xA5,0x4f, 0x06,0xB2,0x44, 0x4A,0xB6,0x38,

0x0A,0xAe,0x4C, 0x09,0x2e,0x42, //2026 //2027 //2028 //2029 //2030 //2031 //2032 //2033 //2034 //2035

//2036 //2037 //2038 //2039

//2040 //2041 //2042 //2043 //2044 //2045 //2046 //2047 //2048 //2049 //2050 //2051 //2052 //2053 //2054 //2055 //2056 //2057 //2058 //2059

//2060

0x0C,0x96,0x49, //2062 0x7d,0x4A,0xBd, //2063 0x0d,0x4A,0x51, //2064 0x0d,0xA5,0x45, //2065 0x55,0xAA,0xBA, //2066 0x05,0x6A,0x4e, //2067 0x0A,0x6d,0x43, //2068 0x45,0x2e,0xB7, //2069 0x05,0x2d,0x4B, //2070 0x8A,0x95,0xBf, //2071 0x0A,0x95,0x53, //2072 0x0B,0x4A,0x47, //2073 0x6B,0x55,0x3B, //2074

0x0A,0xd5,0x4f, //2075 0x05,0x5A,0x45, //2076 0x4A,0x5d,0x38, //2077 0x0A,0x5B,0x4C, //2078 0x3A,0x93,0xB6, //2080 0x06,0x93,0x49, //2081 0x77,0x29,0xBd, //2082 0x06,0xAA,0x51, //2083

0x05,0x2B,0x42, //2079

0x0A,0xd5,0x46, //2084 0x54,0xdA,0xBA, //2085 0x04,0xB6,0x4e, //2086 0x0A,0x57,0x43, //2087 0x45,0x27,0x38, //2088 0x0d,0x26,0x4A, //2089 0x8e,0x93,0x3e, //2090 0x0d,0x52,0x52, //2091 0x0d,0xAA,0x47, //2092 0x66,0xB5,0x3B, //2093 0x05,0x6d,0x4f, //2094 0x04,0xAe,0x45, //2095 0x4A,0x4e,0xB9, //2096 0x0A,0x4d,0x4C, //2097 0x0d,0x15,0x41, //2098 0x2d,0x92,0xB5, //2099 };

///月份数据表

code uchar day_code1[9]={0x0,0x1f,0x3b,0x5a,0x78,0x97,0xb5,0xd4,0xf3}; code uint day_code2[3]={0x111,0x130,0x14e}; /*

篇四:阳历转化成农历算法

c++中怎样将阳历转化成农历

已关闭 20 [ 标签:c++, 阳历, 农历 ] 小^鱼、 2011-05-03 11:06

推荐答案

一、 原理篇

1. 公历转换农历的算法

公历(Gregorian Calendar)与农历(Chinese Lunar Calendar)的转换关系不是一个简单的公式就可以完成,其中的转换比较复杂,原因是农历的制定相当复杂,是根据天文观测进行指定的。

比较常用并且比较简单的公历转换农历算法就是查表方法。首先要保存公历农历的转换信息:以任何一年作为起点,把从这一年起若干年的农历信息保存起来(在我的C++类中,是从1900年作为起点的。选择一个起始点的思想十分重要,在下面的干支纪法和二十四节气中也体现到了)。回想一下,我们平时是怎样来转换公历农历的呢?是查阅历书,历书中有每一天的公历农历,直接一查就可以了。那么我们可不可以也这样做呢?当然可以,但是这样做要收录每一天的信息,工作量就会很大,所以我们要简化这些信息。如何简化呢? 要保存一年的信息,其实只要两个信息就可以了:(1)农历每个月的大小;(2)今年是否有闰月,闰几月以及闰月的大小。用一个整数来保存这些信息就足够了。具体的方法是:用一位来表示一个月的大小,大月记为1,小月记为0,这样就用掉了12位,再用低四位来表示闰月的月份,没有闰月记为0。比如说,2000年的信息数据是0x0c960,转化成二进制就是1100100101100000,表示的含义是1、2、5、8、10、11月大,其余月小,低四位为0说明没有闰月。2001年的农历信息数据是0x0d954,其中的4表示该年闰4月,月份大小信息就是0x0d95,具体的就是1、2、4、5、8、10、12月大,其余月小。这样就可以用一个数组来保存这些信息。在我的C++类中是用m_lunarInfo这个数组来保存这些信息的。

下面就是公历转换成农历的具体算法:

(1) 计算所求时间到起始年正月初一的天数。

(2) 从起始年份开始,减去每一月的天数,一直到剩余天数没有下一个月多为止。此时,m_lunarInfo的下标到了多少,就是减去了多少年,用起始年份加上这个下标就可以得到农历年份,然后看减去了几个月。如果本年不闰月或者闰月还在后面,就可以直接得到农历月份,如果在闰月月份数后面一个月,则这个月就是闰月。剩余的天数就是农历日。(具体实现时有所改进。)

2. 利于巧算星期

在应用数学中有一个计算某一天是星期几的公式,这就是泰勒公式。公式如下:

w = [c÷4] - 2c + y + [y÷4] + [26(m+1)÷10] + d - 1,其中w就是所求日期的星期数。如果求得的数大于(小于)7,就减去(加上)7的倍数,直到余数小于7为止。式子中c是指公

元年份的前两位数字,y是后两位数字,m是月数,d是日数。方括弧[]表示对于括号中的数字取整。还有一个特别要注意的地方:所求的月份如果是1月或2月,则应视为上一年的13月或14月,也就是公式中m的取值范围是从3到14而不是从1到12。

3. 干支纪法

天干有十个,就是甲、乙、丙、丁、戊、己、庚、辛、壬、癸,地支有十二个,依次是子、丑、寅、卯、辰、巳、午、未、申、酉、戌、亥。古人把它们按照一定的顺序而不重复地搭配起来,从甲子到癸亥共六十对,叫做六十甲子。我国古人用这六十对干支来表示年、

得到年、月、日的干支表示原理是相同的,即所求的年、月、日到起始年、月、日所经历的年数、月数、天数,加上起始年、月、日干支表示在上表中的序号,与10取模得到天干的序号,与12取模得到地支的序号。以年为例,1900年立春后为庚子年,查上表可知,庚子年为六十甲子的第36位,所以所求年份m_year到1900年的年数为m_year-1900+36-1(如果月份m_month小于等于2月)或m_year-1900+36(如果月份m_month大于2月)。同理,可以得到月、日的干支表示。最后,还要依据节气(立春)调整二月份的干支纪年;依据每月的第一个节气的日期调整月的干支表示,具体情况源程序中有详细的说明。 古人根据太阳升起的时间, 将一昼夜区分为十二个时辰,用十二地支为代号。如果用m_hour表示公历现在的小时数(二十四表示法),则(m_hour+1)/2就得到时间的地支表示(其实是地支的序号)。

4. 二十四节气

节气就实质而言是属于阳历范畴,从天文学意义来讲,二十四节气是根据地球绕太阳运行的轨道(黄道)360度,以春分点为0点,分为二十四等分点,两等分点相隔15度,每个等分点设有专名,含有气候变化、物候特点、农作物生长情况等意义。二十四节气即立春、雨水、惊蜇、春分、清明、谷雨、立夏、小满、芒种、夏至、小暑、大暑、立秋、处暑、白露、秋分、寒露、霜降、立冬、小雪、大雪、冬至、小寒、大寒。以上依次顺属,逢单的均为"节气",通常简称为"节",逢双的则为"中气",简称为"气",合称为"节气"。现在一般统称

为二十四节气。

自古节气的推算是由一年平分24等分所得的平节气。旧历用平气法推算二十四气,此法将一回归年均分成二十四等分,从冬至开始等间隔地依次相间安排各个节气及中气,而各气之间太阳所运行的度数因此并不相等。新历推算则用定气法,此法将黄道上的周天度数等分成二十四份,太阳移至某一分点时,即定为某一节气的日期,由于太阳的视运动迟速不均,因此各节气间相隔的时间亦不等。但不论新历或旧历,均取冬至为二十四气之首,故在春、秋分时彼此的差别最大。为何中国传统历家早知推算定气,却又习用平气注历?此主要或由于平气易于计算所致,因在此法之下,各节气与节气间或中气与中气间相隔固定为三十日五时辰又二刻。

本C++类中实现二十四节气的计算,使用的是平节气的简单算法。用数组sTermInfo记录从小寒开始的各个节气相对于小寒所经历的分钟数,并用int sTerm(int y, int n)函数得到某年y的第n个节气为所在月的第几日(n从0小寒起算)。由于没有考虑岁差与章动,所以精确度不是很高。

篇五:公历转农历方法

阳历日期推算阴历日期的方法:前已述及阴历日期是以月亮的圆缺为计月单位,其以逢朔为初一,以月望为十五(大月为十六日),以月晦为二十九日(大月为三十日)。然而目前记时通常用阳历日期表达,如欲将阳历日期换算成阴历日期可以用以下两种方法:其一是查《新编万年历》,如查1984年6月8日是阴历几日?翻开万年历6月10日是阴历十一,则逆推6月8日是阴历初九。其二可以利用公式推算阴历日期:

设:公元年数-1977(或1901)=4q+r

则:阴历日期=14q+10.6(r+1)+年内日期序数-29.5n

(注:式中q、r、n均为自然数,r<4)

例:1994年5月7日的阴历日期为:

1994-1977=17=4×4+1

故:q=4,r=1 则:5月7日的阴历日期为:

14×4+10.6(1+1)+(31+28+31+31+7)-29.5n

=204.2- 29.5n

然后用29.5去除204.2得商数6......27.2,6即是n值,余数27即是阴历二十七日。

蔡勒(Zeller)公式:是一个计算星期的公式。

随便给一个日期,就能用这个公式推算出是星期几。

蔡勒公式如下:

W = [ C/4 ] - 2C + y + [ y/4 ] + [ 13 * (M + 1) / 5] + d -1

公式中的符号含义如下:

W: 星期; w对7取模得:0-星期日,1-星期一,2-星期二,3-星期三,4-星期四,5-星期五,6-星期六

C: 世纪-1(前两位数)

y: 年(后两位数)

m: 月(m大于等于3,小于等于14,即在蔡勒公式中,某年的1、2月要看作上一年的13、14月来计算,比如2003年1月1日要看作2002年的13月1日来计算)

d: 日

[ ]代表取整,即只要整数部分。

下面以中华人民共和国成立100周年纪念日那天(2049年10月1日)来计算是星期几,过程如下:

w=y+[y/4]+[c/4]-2c+[26(m+1)/10]+d-1

=49+[49/4]+[20/4]-2×20+[26×(10+1)/10]+1-1

=49+[12.25]+5-40+[28.6]

=49+12+5-40+28

=54 (除以7余5)

即2049年10月1日(100周年国庆)是星期五。

再比如计算2006年4月4日,过程如下:

w=y+[y/4]+[c/4]-2c+[26(m+1)/10]+d-1

=6+[6/4]+[20/4]-2*20+[26*(4+1)/10]+4-1

=-12 (除以7余2,注意对负数的取模运算!)

不过,以上的公式都只适合于1582年(我国明朝万历十年)10月15日之后的情形。罗

马教皇格里高利十三世在1582年组织了一批天文学家,根据哥白尼日心说计算出来的数据,对儒略历作了修改。将1582年10月5日到14日之间的10天宣布撤销,继10月4日之后为10月15日。后来人们将这一新的历法称为“格里高利历”,也就是今天世界上所通用的历法,简称格里历或公历。

体裁作文