万年历的算法,万年历的算法如何知道年月日

万年历算法【请注意看题】

月令交界的时候 做逻辑判断 这需要你自己对历法熟悉了 如果只是循环的话 可以天干地支各定义一个一位数组 定一个初始参照 比如:define tiangan[0] ~ tiangan[9] 甲 ~ 癸define dizhi[0] ~ dizhi[11] 子 ~ 亥比如201208081314就是"%s%s年%s%s月%s%s日"(tiangan[4],dizhi[8],...)根据时间现有时间的小时为最小单位+1时,相应的tiangan[]和dizhi[]两个数组中的编号+1

2023年7月2日时辰吉凶查询表

2023年7月2日黄历日历

【公历】:公元2023年07月02日

【农历】:农历06月(大)04日 星期六 巨蟹座

【岁次】:壬寅年、生肖虎、丙午月、丙辰日

【每日胎神占方】:厨灶栖外正东

【五行】:沙中土 开执位

【冲】:冲狗(庚戍)煞南

【彭祖百忌】:丙不修灶必见灾殃 辰不哭泣必主重丧

【吉神宜趋】:月德 时德 天德 福生 司命

【宜】:解除 坏垣 馀事勿取

【凶神宜忌】:五虚 九空 天牢

【忌】:诸事不宜

今日吉时查询:

子时[23-1点] 冲马 煞南 时冲壬午 天牢 六戊 三合 福星

宜:订婚 嫁娶 求财 开市 交易 安床 祭祀

忌:赴任 修造 移徙 出行 词讼 祈福 求嗣

丑时[1-3点] 冲羊 煞东 时冲癸未 元武 旬空 太阴 国印

宜:安葬 求财 见贵 嫁娶 进人口 移徙

忌:赴任 出行 修造 动土

寅时[3-5点] 冲猴 煞北 时冲甲申 地兵 长生 司命 驿马

宜:求嗣 嫁娶 移徙 入宅 开市 交易 安葬 作灶 祭祀 祈福 斋醮 酬神 赴任 出行

忌:修造 动土

卯时[5-7点] 冲鸡 煞西 时冲乙酉 狗食 日害 勾陈

宜:

忌:祭祀 祈福 斋醮 酬神 赴任 出行

辰时[7-9点] 冲狗 煞南 时冲丙戍 建刑 不遇 路空 青龙

宜:订婚 嫁娶 安床 移徙 入宅 修造 安葬

忌:造桥 乘船 赴任 出行 祭祀 祈福 斋醮

已时[9-11点] 冲猪 煞东 时冲丁亥 路空 明堂 日禄 五符

宜:修造 盖屋 移徙 作灶 安床 入宅 开市 求财 见贵 订婚 嫁娶

忌:祭祀 祈福 斋醮 赴任 出行

午时[11-13点] 冲鼠 煞北 时冲戊子 天刑 帝旺 大进 贪狼

宜:求嗣 嫁娶 移徙 入宅 开市 交易 修造 安葬 祈福 出行 求财

忌:赴任 词讼

未时[13-15点] 冲牛 煞西 时冲己丑 日杀 朱雀 右弼

宜:赴任 见贵 求财 出行 嫁娶 进人口 移徙 安葬

忌:修造 动土 朱雀须用 凤凰符制 否则 诸事不宜

申时[15-17点] 冲虎 煞南 时冲庚寅 天兵 喜神 三合 金匮

宜:祈福 求嗣 订婚 嫁娶 出行 求财 开市 交易 安床

忌:上梁 盖屋 入殓

酉时[17-19点] 冲兔 煞东 时冲辛卯 贵人 天赦 宝光

宜:祈福 求嗣 订婚 嫁娶 出行 求财 开市 交易 安床 祭祀 修造 入宅 安葬

忌:

戌时[19-21点] 冲龙 煞北 时冲壬辰 日破

宜:

忌:日时相冲 诸事不宜

亥时[21-23点] 冲蛇 煞西 时冲癸已 大退 玉堂 贵人 少微

宜:盖屋 移徙 安床 入宅 开市 开仓 祭祀 祈福 酬神 出行 求财 见贵 订婚 嫁娶

忌: 修造 安葬

2023年7月2日这天的日子并不是黄道吉日。

万年历 算法(得知 阳历 算出 农历)

// Yuna_2006_10_16 // A program of a celinder #include <iostream> using std::cin; using std::cout; using std::endl; // the use of setw #include <iomanip> using std::setw; #define BEGINYEAR 2000 // the year i use to begin #define BEGINDAY 6 // 2000`s first day const int aiMounth[] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }; // everymounth`s days // the fuction i call int GetBeginDay( int, int ); // Get the first day of the mounth int GetDays( int, int ); // Get the number of the days in a mounth void PrintTitle(); // print the title void PrintDate( int, int ); // print the date int GetDaysOfaYear( int ); // get the number of days of a year // the main begin here int main() { int iYear, iMounth, iBeginDayOfaWeek, iDays; // prompt and get the paramters i need cout << "Please Input The Year Of The Date:" << endl; cin >> iYear; cout << "Please Input The Mounth Of The Date:" << endl; cin >> iMounth; // if Input a wrong num if( iYear <= 0 || iMounth <= 0 || iMounth > 12 ) { cout << "Input Error!" << endl; return 0; } // do what you want me to do iBeginDayOfaWeek = GetBeginDay( iYear, iMounth ); iDays = GetDays( iYear, iMounth ); PrintTitle(); PrintDate( iBeginDayOfaWeek, iDays ); // the fuction end here return 0; } int GetBeginDay( int iYear, int iMounth ) { int iResult; int iDifference = iYear - BEGINYEAR; // i want to know if input if larger than my begin year long lSumOfDays = 0; if( iDifference >= 0 ) // if input is larger than my begin year { for( int i = BEGINYEAR; i < iYear; i++ ) lSumOfDays += GetDaysOfaYear( i ); for( int k = 1; k < iMounth; k++ ) if( 2 == k && ( ( iYear % 4 == 0 && iYear % 100 != 0 ) || iYear % 400 == 0 ) ) lSumOfDays += 29; else lSumOfDays += aiMounth[k-1]; iResult = ( int )( ( lSumOfDays + 6 ) % 7 ); } // end the if part of if/else else // if input is smaller than my begin year { for( int j = iYear + 1; j < BEGINYEAR; j++ ) lSumOfDays += GetDaysOfaYear( j ); for( int m = iMounth; m <= 12 ; m++ ) if( 2 == m && ( ( iYear % 4 == 0 && iYear % 100 != 0 ) || iYear % 400 == 0 ) ) lSumOfDays += 29; else lSumOfDays += aiMounth[m-1]; iResult = ( int )( ( lSumOfDays + 1 ) % 7 ); // change the code switch( iResult ) { case 1: iResult = 6; break; case 2: iResult = 5; break; case 3: iResult = 4; break; case 4: iResult = 3; break; case 5: iResult = 2; break; case 6: iResult = 1; break; default: break; } // end switch inside } // end else part of if/else return iResult; } int GetDays( int iYear, int iMounth ) { if( 2 == iMounth && ( ( iYear % 4 == 0 && iYear % 100 != 0 ) || iYear % 400 == 0 ) ) return 29; // if the year is a leap year return aiMounth[ iMounth - 1 ]; // normal year } void PrintTitle() { cout << setw(10) << "Sunday" << setw(10) << "Monday" << setw(10) << "Tuesday" << setw(10) << "Wednesday" << setw(10) << "Thursday" << setw(10) << "Friday" << setw(10) << "Saturday" << endl; } void PrintDate( int iBeginDayOfaWeek, int iDays ) { // format the output for( int i = 0; i < iBeginDayOfaWeek; i++ ) cout << " "; // out put the date for( int i = 1; i <= iDays; i++ ) { if( ( 0 == ( i + iBeginDayOfaWeek - 1 ) % 7 ) && i != 1 ) cout << endl; // if the day is Sunday cout << setw(10) << i; } cout << endl; } int GetDaysOfaYear( int iYear ) { if( ( iYear % 4 == 0 && iYear % 100 != 0 ) || iYear % 400 == 0 ) return 366; // if the year is a leap year return 365; // normal year } // 先输入年份,然后输入月份,就可以得到该年该月的的日历了。 // 该日历从公元1年开始计算到公元2147483647年(理论上可以算出,但是所 // 花时间太长)。c语言写的万年历

2023年10月4日时辰吉凶查询

我们总是会去留意时间的好坏,在一个对的时间当中,总能够让自己所做的事情能够得到一个更好的结果,所以也会精挑细选选择一个最吉利,最合适的时间去做自己所看重的事情。希望自己能够获得好的运气,也希望自己在生活当中能够无忧无虑,开开心心。

农历的算法是怎么算的?

首先我复制粘贴的,还有就是算法复杂,如果你的心算能力强就会更快些!阳历日期推算阴历日期的方法:阴历日期是以月亮的圆缺为计月单位,其以逢朔为初一,以月望为十五(大月为十六日),以月晦为二十九日(大月为三十日)。然而目前记时通常用阳历日期表达,如欲将阳历日期换算成阴历日期可以用以下两种方法:其一是查《新编万年历》,如查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即是阴历二十七日。 一、 推算年干支口诀 掌上推算年干支,支子花甲起根源。 阳支都是旬开始,天干为甲尾四年。 隔位逆推十年正,顺推年尾五零三。 逐支加减六十数,掌上推算千万年。 推算方法:“掌上推算年干支,支子花甲起根源。”此法是将地支排列在掌中,手掌上推算年干支的方法。 首先,在掌上将地支定位(图一),然后以地支子位为花甲子的开始,可定为1864,1924,也可定为1984年???,其年都是甲子年。“阳支都是旬开始,天干为甲尾四年。”地支中的子,寅,辰,午,申,戌都是阳支,而且也是每旬的开始,天干都为甲,即甲子,甲戌,甲申,甲午,甲辰,甲寅,这些年的公历尾数均为四。“隔位逆推十年正,顺推年尾五零三。”天干十数,地支十二数,天干与地支组合天干每循环一次,地支总与下二支(旬空)。其中余下的第一支便是下旬的开始。我们从地支子位开始,隔一位逆推,即从子位逆推隔亥到戌,恰是甲戌旬的开始,再逆推隔一位酉至申为甲申旬开始,------年尾数都为四,年间隔都是十年。在确定旬开始以后,以该年尾数四为起点,从下支开始挨位顺推,其公历年尾数分别是5,6,8,9,0,1,2,3,而后又是下旬的开始。“逐支加减六十数,掌上推算千万年”掌握此法推算,如果将甲子年定为1984年,按口诀可知1994年为甲戌,2004年为甲申,年为甲午等。确定每旬开始的公历年数后,可根据需要顺推任何一年的干支,虽意性很大,可推千年万年的干支。 二、推算月、时干支口诀 天干五合前为主,月时干序一至五。 年干隔数配寅月,日干配时本数身。 古往今来,年上起月,日上起时,是按天干五合的方法,分成五种情况,即甲、己之年(日)定月(时)的方法相同------。我们也采用这种方法,并一前一天干为主,即甲、己以甲为主,乙、庚以乙为主,------,配上序数甲为1,乙为2,丙为3,丁为4,戊为5(图二),成为推算月、时的固定序数。“年干隔位配寅月”,推算某年的月干,先看该年干与何干相合,然后按“天干五合前为主”的方法,查出该干的序数,并设此干为零,按序数隔干确定寅月的天干。如98年是戊寅,戊癸干合,戊年与癸年的天干相同,属于同一种定寅月天干法。五的序数尾5 ,从5 开始,隔己、庚、辛、壬、癸五天干到甲,就可以算出98年寅月的天干是甲,其他月的天干就好推算了。“日干配时本身数” ,此句推算方法与年干定寅月天干发基本相同,只是在确定日干合干以后,从合之干的前干本身算起,按序数查,到何干,便是该日子时的天干。如己日,己与甲同一类型,以甲干为主,甲的序数为“1”以本身配子时,该日子时的天干为甲,即甲子时。同样,癸日子时吧的天干,因戊癸合干,以五为主,序数为5,从5开始数到壬,癸日子时为壬子时。 二、 农历大小月卦口诀 一年上下两卦编,一七两月初爻安。 阴大阳小编上卦,遇有闰月年十三。 闰爻相邻爻间伏,确定年月按节算。 推算方法:此诀是为了掌握某年农历大小月的排列顺序和有否闰月而编的。“一年上下两卦编,一、七两月初爻安” ,在 正常情况下,农历每年为十二个月。我们可以将一至六月编为前卦,七至十二月编为后卦,几一年编为两卦,并以一月为前卦的处爻,七月为后卦的初爻。“阴大阳小编上卦,遇有闰月年十三”,我们将大月规定用用阴爻表示,小月用阳爻表示,按大小顺序用阴阳爻将一年编为两卦。遇到有闰月的年份就多出一个月,一年为十三个月。“闰年相邻爻间伏,确定年月按节算”。在出现有闰月的年份时,按闰月大小用阴阳爻表现出来,并标在 闰月的前后两月的爻位中间的左侧,如同伏卦一样,一看便知到闰几月,是大月还是小月。同时,提醒您农历年、的确定,不是按万年历编出的月份确定的,而是按节气确定的。如1998年,按上述方法可编成《井》和《坎》两卦,而今年闰5月为小月,上半年月卦符号为“: 。 : 。 。 : ”,下半年的月卦符号为“ = 丨 = = 丨 = ”,上半年卦第5、6爻间伏一阳爻,可知今年润五月为29天。 四、推算日干支口诀 推算日干支,可以按公历和农历两种方法推算。 ⑴ 农历日干支推算口诀: 大小月卦记心间,正一干支起根源。 大后干同地支冲,小后干支退一天。 初一十三二十五,支同隔干一位算。 推算方法:“大小月卦记心间,正一干支起根源。”农历的大月为30天小月为29天,固定不变。要推农历曰干支,先要按《农历大小月卦口诀》将推算之年编上两卦,以便在推算日千支时运。除此之外,还要记住农历正月初一日的干支,因为它是推算一年逐日的基础。“大后干同地支冲,小后干支退一天。”农历天干与地支组合,天干循环2.5次。根据这一规律,知道某月初一日干支,如果这个月是小月则应在干同支冲的情况下,干支各减一位,则是小月后下月初一日干支。如本月初一干支为己卯,这个月是大月,下月初一干支为己酉。如果这个月是小月,则下月初一干支应在己酉退一位后确定,即为戊申日。“初一十三二十五,支同干隔一位算。”此两句是在确定某月初一干支后,将这个月分成三个阶段,即初一至十二,十三至二十四二十五以后。初一、十三、二十五日在干支上也是有规律的。知道初一干支,只要将该日天干隔一位顺推,而地支不变。同理,知道十三日干支,支同干隔一位,也知道二十五日的干支。如初一日干支为甲子,则十三日干支为丙子,二十五日干支为戊子。掌握这个方法,就可以根据所推之日属于哪一段,便可以很快知道这天的干支了。 ⑵公历日干支推算口诀: 元旦干支为根源,大小二月记心间。 小月干同地支冲,大月上句加一天。 申子辰年年为闰,干同支冲退一天。 余年二月二十八,干同支冲退一天。 月首十三二十五,支同隔干一位算。 推算方法:“元旦干支为根源,大小二月记心间。”推算公历日干支,首先要记住元旦曰的干支。同时,还要知道大小月及二月的天数。公历大月为31天,小月为30天,其大小月是固定不变的,唯独二月有29天和28天之分。因此,要特别注意哪年二月为29天,那年二月为28天。“小月干同地支冲,大月上句加一天。”公历小月为30天,按农历大月推算口诀,我们知道本月初一日干支,与下月初一干支则是天干相同地支相冲。公历大月为31天,在小月干地相冲的基础上,干支各加一位数,即是大月后下月一日的干支。“申子辰年年为闰,干同支冲退一天。”经过研究,发现凡地支为申、子、辰的年为公历闰年,二月为29天。在推算3月1日干支时,可按农历小月后的日干支推算方法,即在干同地干冲的基础上,干支各减一位,则为3月丨日干支。“余年二月二十八,干同干冲退二天。”除地干为申子辰年二月29天,其它年二月均为28天。在知道2月1日干支后,按干同支冲规律,干支各减二位便是3月1日的干支。“月首十三二十五,支同干隔一位算。”月首,代表每月第1日。其推法与农历日干干诀后两句相同。 五.实例:推算1998年农历6月初10日午时的干支。 ⒈先按《农历大小月卦口诀》,将98年农历大小月,排上两卦,并标出闰月。同时,记住正月初一日和元旦日干支。 ⒉推算1998年的干支。我们按《推算年干支口诀》在手掌上将地支子位定为甲子,为1984年,并将大拇指按在地支子位上。按“隔位逆推十年正”,大拇指从甲戌94年开始顺推,即94年为甲戌,95年为乙亥,96为丙子,97年为丁丑,98年干支则为戊寅。 ⒊推算农历6月份干支。确定1998年戊寅干支以后,按《定月时干支诀》,戊干与癸干合以戊为主,戊的序数为5,将大拇指固定在戊位上。“年干隔位配寅月”,从戊位开始,将大拇指顺数,隔过天干,已,庚,辛,壬、癸五干到甲,便是98年正月的天干,即正月干支为甲寅,再从寅支开始,按甲,己,丙,丁,戊6月干支为己未。 ⒋推算6月初10日(公历8月1日)干支。 ⑴推算农历日干支。如前所述,98年大小月卦为《井》和《坎》。因为闰5月为29天,为阳爻,伏在《井》卦第5、6爻问,卦形为 =丨= 丨丨= 。 因为要推算的是农历98年正月初一日干支为己亥,先用大拇指在手掌亥支上定位,然后按《农历日干支推算诀》中的“大后干同地支冲,小后干支退一天”的规定,逐月推算初1日的干支。正月为大,干同支冲,大拇指跳到巳位上,2月初1日干支为已巳;干同支冲各减1,大拇指跳到亥位后,再减1位,3月初1日干支为甲戌;3月为小,干同支冲各减1大拇指跳到辰支后退1位,4月初1日为癸卯;4月为大,干同支冲,大姆指跳到酉干,5月初1日为癸酉;5月为小,干同支冲各减1,大拇指跳到卯支再退1位,闰5月 初1日为壬寅。闰5月为小,干同支冲各减1,大拇指跳到申支后再退一位,六月初一干支为辛未。知道6月初1日的干支后,从此位顺推初10曰的干支为庚辰。 ⑵、推算公历8月1曰干支。 98年干支为戊寅,年支不属于申子辰,故98年2月为28天。按《曰公历干支推算口诀》中“小月干同地支冲,大月上句加一天------,余年二月二十八,干同支冲退两天”的规律,逐月推算。98年干支戊申,大拇指定在申位上。1月为大,干同支冲加一天,大拇指由申位到跳到寅,加1支到卯,2月1日为己卯,2月28天,干同干冲退二天,大拇指跳到酉位退二支,3月1日为丁未;3为大,干同支冲加1天大拇指跳到丑进一位4月1日干支为戊寅;4月为小,干同干冲,大拇指跳到申位,5月1日干支为戊申;5月为大,干同支冲加1天,大拇指跳到酉位,7月1日干支为己酉;7月为大,干同支冲加1天,大拇指跳到卯进1位到辰,8月1日干支为庚辰。 ⒌推算农历6月初10(公历8月1日),该日干支为庚辰。我们按《定日时干支诀》知道,该日干庚与己相合,按“天干五合前为主”,以天干己来推算,己的序数为2,将大拇指定在天干己的位置上。“日干定时本身数”,大拇指从第二位到丙,可知庚辰日子时为丙子。将大拇指从丙子顺推到午年时,天干为壬,午时干支为壬午。 经过在掌上推算年、月、日、时干支,可知98年农历6月初10日(公历8月1日)午时干支,分别为戊寅年己未月庚辰日壬午时。 六、需要注意的几个问题。 ⒈要在理解《冯氏掌上巧推年月日时干支法》的基础上,将巧记口诀和在掌上定位推算结合起来,并经常对照万年历进行推算,才可能达到熟练生巧,运用自如。 ⒉再运用此法时,应先制定一种表格,并随身携带,供推算年干支时使用。 此表格如下: 年序号 本年大小月卦(闰) 立春月日时 正月初一日干支 元旦日干 支 1988 :丨:丨丨::丨::丨: 正月初八庚子日辰时 己亥 戊申 1999 丨丨:丨丨:丨:::丨: 腊月十九丁亥日未时 甲子 癸丑 在推算逐日干支时,一定要注意大小月,分清干同支冲和干同干支冲加减的区别。 掌上巧推年月日时干支法(附录) 一、 逐年推算元旦干支口诀 欲推来年元旦日,先知今年日干支。 申子辰支年为闰,干加六位支冲支。 余年天干加五位,干冲退一便可知。 推算方法:“欲推来年元旦日,先知今年日干支。”推算来年元旦日的干支,必须先知道今年元旦日的干支,并用大拇指在掌上定位。“申子辰干年为闰,干加六位支冲支。”凡年支临申子辰的为闰年,2月29天。推算下一年元旦日的干支,只要大拇指从今年元旦日支位,跳到相冲的地干支位上,而后天干顺加六位,便是来年元旦的干支。“余年天干加五位,干冲退一便可知。”除申子辰年外,其它年干2月均为28天。大拇指在掌上定好今年元旦日支位置,推算来年元旦干支时,将大拇指跳到相冲之支退一位,天干加上五位,即是来年元旦的干支。 二、逐年推算正月初一日干支口诀 欲推来年正一月,先知今年日干支。 常年退回小月数,闰月小数五六七。 小六干同天隔三,迂五前句各加一。 逢七支同天隔三,各退一位定无异。 推算方法:“欲推来年正一月,先知今年日干支。”推算来年正月初一日的干支,必须先知道今年正月初一的干支。“常年退回小月数,闰月小数五六七。”常年,指没有闰月的年份。推算农历正月初一干支,要按《农历大小月卦口诀》,逐年编上两卦,以便确定某年的小月数。如果今年没闰月,求来年正月初一日干支。经过研究,凡有闰月之年小月数分别为五、六、七三种。“小六干同天隔三,迂五前句各加一。”闰月之年,如果小月数为六,来年正月初一日干支,于前一年初一日干支则是地支相同,而天干则顺隔三位。小月数为五的,按干同天顺隔三后干支各进一位,便是来年正月初一日干支。“逢七支同天隔三,各退一位定无异。”闰月之年小月数为七的,在确定当年正月初一日干支后,推算下一年正月初一日干支,只要按支同天顺隔三位后,干支各减一位,便时来年正月初一日干支。 三、 用卦象推算公历各月第一日干支法 用卦象推算公历各月第一日的干支,主要是按公历大小月固定不便的实际,编上一个适用任何一年的卦象。然后按大小干支循环规律,进行推算各月第一日的干支。公历年大小月固定卦象,上半年是《未济》卦,下半年为《蹇》卦,其卦象如图三所示。在推算过程中,要特别注意二月,因为有28天和29天之分,所以在《未济》卦象的等二爻,标上闰年合非闰年字样,以便在推算时引起注意。在推算时,要将《公历曰干支推算口诀》做为依据,确定下月第一日干支,然后按“月首十三二十五,支同隔干一位算”,推算出所求之日干支。图三。 6月 丨 一曰干同地支冲+1 12月 = 一日干同支冲 5月 = 一日干同地支冲 11月 丨 一日干同支冲+1 4月 丨 一日干同地支冲+1 10月 = 一日干同支冲 3月 = 闰一日干同地支冲+1 09月 丨 一日干同支冲+1 2月 丨 闰年2月29天,非一日干同支冲—2 08月 = 一日干同支冲+1 非闰年2月28天,一日干同支冲+1 1月 = 元旦日干支 07月 = 一日干同支冲 四、 用卦象推算农历各月初一日干支法 农历大小月,其天数固定不变,即大月30天,小月29天。但是,由于大小月的排列不规则,因此要按《农历大小月卦口诀》先编上本年的上下半年的月卦。然后依据两个卦象,参考《农历日干支推算口诀》,在知道正月初一的日干支后,按“大后干同地支冲,小后干支退一天‘的规律,运用卦象来推算农历各月初一日的干支。经研究发现,农历相邻两月大小月的排列,共有四种类型,其推算逐月初一干支法如下: ⑴ 两小月相邻同支冲 ⑵ 两大 — 下月干同支冲—1 = 下月干 — 本月初一日干 = 本月初一日干支 ⑶大小月相邻 ⑷ 大小月相邻 — 下月干同支冲 = 下月干同支冲—1 = 本月初一日干支 — 本月初一日 △ 实例:推算2001年各月初一干支 ⒈按《农历大小月卦口诀》,先将2001年编上月卦。上半年为“艮”卦,下半年为“既济”卦。 ⒉2001年正月初一日干支为丁亥。 ⒊推算时,要将1、2月,3、4月等相邻两月,与四种排列类型对照,然后按相同类型进行推算。 ⒋根据卦象,逐月进行推算。 6月“ — ”干同支冲己酉 12月“ = ” 干同支冲—1辛巳 5月“ — ”干同支冲—1己卯 11月“ — ” 干同支冲壬子 闰4月“ — ”干同支冲丙戌 10月“ = ” 干同支—1壬午 4月“ — ” 干同支冲—1丙辰 9月“ — ” 干同支冲葵丑 3月“ — ” 干同支冲丁亥 8月“ = ” 干同支冲—1癸末 2月“ — ” 干同支冲丁巳 7月“ — ” 干同支冲—1甲寅 1月“ — ” 正月初一丁亥 经过逐卦推算农历12月初一为辛巳。

万年历是谁推算出来的?

是万年。

相传,在很久以前,有个名字叫万年的青年,有一天,他上山砍柴的时候,因为太阳晒得太热,坐在树荫下休息。突然,地上树影的移动启发了他。回家之后,他就用了几天几夜设计出一个测日影计天时的晷仪。

可是,当天阴有雨或有雾的时候,就会因为没有太阳,而影响了测量。后来,山崖上的滴泉引起了他的兴趣,他又动手做了一个五层漏壶。天长日久,他发现每隔三百六十多天,天时的长短就会重复一遍。

当时的国君叫祖乙,天气的不测,也使他很苦恼。万年听说后,忍不住就带着日晷和漏壶去见国君,对祖乙讲了日月运行的道理。祖乙听后龙颜大悦,觉得很有道理。

于是把万年留下,在天坛前修建日月阁,筑起日晷台和漏壶亭。祖乙对万年说:希望你能测准日月规律,推算出准确的晨夕时间,创建历法,为天下的黎民百姓造福。

冬去春来,年复一年。后来,万年经过长期观察,精心推算,制定出了准确的太阳历。当他把太阳历呈奉给继任的国君时,已是满面银须。国君深为感动,为纪念万年的功绩,便将太阳历命名为「万年历」,封万年为日月寿星。

历法的原则

无论哪一种历法,都有一个协调历日周期和天文周期的关系问题。在原则上,历月应力求等于朔望月,历年应力求等于回归年。但由于朔望月和回归年都不是整日数,所以,历月须有大月和小月之分,历年须有平年和闰年之别。

通过大月和小月,平年和闰年的适当搭配和安排,使其平均历月等于朔望月,或平均历年等于回归年。这就是历法的主要内容。

返回顶部