干 支 法 纪 年 算 法 ( 2 0 2 0 )

合集下载

如何计算年月日时干支

如何计算年月日时干支

年干支计算年份-3,将减去后的数除以10,其余数所对应的天干即为该年的天干;将减去后的数除以12,其余数所对应的地支即为该年的地支。

如2010年,2010-3=2007,200710······7,余数为7,7所对应的天干即为庚;200712······3,余数为3, 3所对应的地支即为寅。

所以2010年的干支即为庚寅。

N=x-3-60m (0<N ≦60)月干支查算表用六十甲子记月,因为每月的地支是固定不变的,即正月为寅月,二月为卯月,依此类推。

而月份的天干却不固定,必须经推算才能排出。

推算的歌诀为: 甲已之年丙作首,乙庚之岁戊为头, 丙辛之岁寻庚上,丁壬壬寅顺行流, 戊癸之年何方发,甲寅之上好追求。

解释:甲已之年丙作首,就是说,遇甲年或已年,正月为丙寅月,然后顺次推出二月丁卯、三月戊辰......乙年、庚年的正月寅与戊相配,即戊寅,二月已卯、三月庚辰......如2005年为甲申年,十二个月干支即为下表中“甲已”列中所列: 此为已知年干支后,以年干支查算月干支的表格,又名年上起月表 查算方法年干 甲已 乙庚 丙辛 丁壬 戊癸 如要查1948年三月和2000年四月的干支一、必须先按《公元前后干支纪年查对表》或者《近两轮六十甲子与公历纪年检索表》查出年干支,如:1948年干支为:戊子;2000年干支为:庚辰 二、在“年干”栏找到与已知年干支对应的“干”,如:戊子为:戊癸,庚辰为:乙庚三、月份与年干交叉的位置即为月干支。

如:1948年戊子年三月干支为丙辰,2000年庚辰年四月干支为“辛巳”月干支为四柱之二,八字中的第三、四字 正 月 丙寅 戊寅 庚寅 壬寅 甲寅 二 月 丁卯 已卯 辛卯 癸卯 乙卯 三 月 戊辰 庚辰 壬辰 甲辰 丙辰四 月 已巳 辛巳 癸巳 乙巳 丁巳 五 月 庚午 壬午 甲午 丙午 戊午六 月 辛未 癸未 乙未 丁未 已未 七 月 壬申 甲申 丙申 戊申 庚申 八 月 癸酉 乙酉 丁酉 已酉 辛酉 九 月 甲戌 丙戌 戊戌 庚戌 壬戌 十 月 乙亥 丁亥 已亥 辛亥 癸亥十一月 丙子 戊子 庚子 壬子 甲子 十二月丁丑已丑辛丑癸丑乙丑对于日干支我们平时都是去查万年历,但在没有万年历的情况下该怎样去计算日干支呢?盲人有一套口诀但比较繁琐我们很难记住,下面介绍一种通过阳历的年月日来计算日干支的方法:首先要记住六十甲子的序号1甲子、2乙丑、3丙寅、4丁卯..........59壬戌、60癸亥。

干支纪年计算公式

干支纪年计算公式

干支纪年计算公式
干支纪年是一种传统的纪年方式,以十个天干(甲、乙、丙、丁、戊、己、庚、辛、壬、癸)和十二个地支(子、丑、寅、卯、辰、巳、午、未、申、酉、戌、亥)相互搭配组成六十个组合,每组代表一个年干支。

以下是计算干支纪年的方法:
首先确定计算年份,以年份的后两位数乘以5,再加上5,最后以天干为余数,以地支为除数,算出结果即为所求的干支纪年。

例如,要计算2023年的干支纪年,首先将2023年除以5,余数为3,对应天干中的第三个位置,即“癸”;然后将2023年除以12,余数为9,对应地支中的第九个位置,即“戌”。

因此,2023年的干支纪年为“癸戌”。

需要注意的是,这个方法只适用于计算最近的五百年以内的年份,对于更早的年份则需要另外计算。

同时,天干和地支的顺序需要注意,不能错位或颠倒。

天干地支纪年的计算方法

天干地支纪年的计算方法

天干地支纪年的计算方法简介:天干地支ti a n^ n zh i 天干地支简称“干支”。

“辞源”里说,“干支”取义于树木的“干枝”。

十天干:甲(ji 为、乙(y)丙(bi n)丁(d i n)戊(wu)>己(j )庚(ge ng、辛(x i )壬(r n)癸(gu)十二地支:子(z )丑(ch 、寅(y n)卯(mdo)、辰(ch旳)巳( s )午(wd)未(wei)>申(shen酉(yb)戌(xu)>亥(h ci)(注:十二地支对应十二生肖 [1] ------------------------- 子: 鼠;丑:牛;寅:虎;卯:兔;辰:龙;巳:蛇;午:马;未:羊;申:猴;酉:鸡;戌:狗;亥:猪。

)。

早在公元前 2697 年,于中华始祖黄帝建国时,命大挠氏探察天地之气机,探究五行(金木水火土)),始作甲、乙、丙、丁、戊、己、庚、辛、壬、癸十天干,及子( z)丑(ch 6)寅(y n)、卯(mdo)、辰(ch en)、巳( s )午(wu)>未(wei)申(sh e n 酉(y 6 U、戌(xo)亥(hC、十二地支,相互配合成六十甲子用为纪历之符号。

根据《五行大义》中记载,干支是大挠创制的。

大挠“采五行之情,占斗机所建,始作甲乙以名日,谓之干,作子丑以名月,谓之枝。

有事于天则用日,有事于地则用月。

阴阳之别,故有枝干名也。

”▲天干地支纪年与公历的近似换算从已知的公历年份计算干支纪年:年份数减 3,除以 10的余数是天干,除以 12 的余数是地支。

(公元前的年份则用 58-“年份数除以 60的余数”后计算)也可以天干:年份出0,得到的商不管,看余数,若余数—3得正,则按天干顺序往下数,得数即为天干顺序数,若余数- 3 为负,则 +10,得到的数即为天干数,若余数为3,则为天干的最后一位,即癸。

地支:年份^12,得到的商不管,看余数,若余数- 3得正,则按地支顺序往下数,得数即为地支顺序数。

若余数— 3 为负,则 +12,得到的数即为地支顺序数,若余数为3,则为地支的最后一位,即亥。

天干地支的计算方法及天干地支查询表

天干地支的计算方法及天干地支查询表

天干地支的计算方法及天干地支查询表天干地支简称干支,是夏历中用来编排年号和日期用的。

干支还有阴阳之分:甲、丙、戊、庚、壬为阳干,乙、丁、己、辛、癸为阴干;子、寅、辰、午、申、戌为阳支,丑、卯、巳、未、酉、亥为阴支。

以一个天干和一个地支相配,排列起来,天干在前,地支在后,天干由甲起,地支由子起,阳干配阳支,阴干配阴支(阳干不配阴支,阴干不配阳支),共有六十个组合,称为“六十甲子”。

我国人民过去就是以六十甲子循环起来纪年、纪月、纪日、纪时的。

干支纪年法:如甲子为第一年,乙丑为第二年,丙寅为第三年……六十年为一周。

一周完了,再由甲子年起,周而始,循环下去。

阳历年份除以60的余数减3便得到该年农历干支序号数,再查干支表便是干支年纪。

如果序号数小于、等于零则于支序号数加60。

如计算2008年的干支,即为:2008/60=33余数为28,28-3=25,查干支表知该年为戊子。

又如求1983年干支:1983÷60=33余3,干支序号=3-3=0,加上60,查干支表知该年为癸亥。

表一天干和地支天干和地支组合便成为以「甲子」为首的六十干支循环(表二)。

表二六十干支表历史上以干支纪年、纪月、纪日和纪时的起始年代各不相同。

干支纪年和纪日已使用了二、三千年。

月份和时辰本来只与十二地支配对(图一和表三),后来人们根据年干订定月干(表四),又根据日干订定时干(表五),把年、月、日、时的干支合成八字。

表三十二辰和现今时间的对应关系表四年干和月干的对应关系表五日干和时干的对应关系子丑寅卯辰巳午未申酉戌亥2.干和支组合后用于纪年。

即:将十天干和十二地支按顺序配组合成干支,用于纪年。

按此排法,当天干10个符号排了六轮地支12个符号排了五轮以后,可构成60干支。

续排下去又将恢原状,周而复始,即如民间所说“六十年转甲子”。

二.查看不同时间段的万年历。

如:1516—2060年的万年历,着五百年的干支,一查便知。

六十年甲子(干支表)1 2 3 4 5 6 7 8 9 10甲子乙丑丙寅丁卯戊辰己巳庚午辛未壬申癸酉11 12 13 14 15 16 17 18 19 20甲戌乙亥丙子丁丑戊寅己卯庚辰辛己壬午癸未21 22 23 24 25 26 27 28 29 30甲申乙酉丙戌丁亥戊子己丑庚寅辛卯壬辰癸巳31 32 33 34 35 36 37 38 39 40甲午乙未丙申丁酉戊戌己亥庚子辛丑壬寅癸卯41 42 43 44 45 46 47 48 49 50甲辰乙巳丙午丁未戊申己酉庚戌辛亥壬子癸丑51 52 53 54 55 56 57 58 59 60甲寅乙卯丙辰丁巳戊午己未庚申辛酉壬戌癸亥根据“六十年甲子(干支表)”的公元年对应进行向上或朝地反推。

干支纪年与公历换算

干支纪年与公历换算

干支纪年与公历换算一、由公元推干支为了便于运算和使检索更加直观,用六十干支表并按顺序加以编号成表一如下:表一:六十干支表1,求公元后某年(设为Y)的干支。

方法是:先以Y除以60得出余数,然后再减去4,最后根据所得结果查表一中相应序数所对应的干支即为该年的干支。

例如求公元1911年的干支:1911÷60余数为51,减4后得47,查表一47对应的干支是辛亥,即1911年为辛亥年。

由于干支纪年60年一循环,当Y÷60的余数小于4时,需借干支纪年的一个周期60之数,例如1981年除以60余数为1,直接减4不够减,加上60之后再减4等于57,查表一便知1981年为辛酉年。

余可类推。

2,求公元前某年(设为X)的干支。

方法是:先以X除以60求其余数,再用57减去所得余数,根据所得结果再查表一中对应的干支,即为该年的干支。

例如求公元前221年的干支:221÷60,余数是41,以57-41=16,查表一16对应的是庚辰,即公元前221年对应的干支应为庚辰。

同样由于干支纪年的循环周期为60年,当余数大于57时,也需再借60。

例如求公元前479年(孔子卒年)的干支:479除以60余59,用57减59不够减,加上60之后再减59等于58,查表一知该年对应的干支为壬戌。

其余可以类推。

上述方法简便易行,只要记住表一,就完全可以不用纸笔,直接由心算推出结果。

此外,由于六十甲子是由十天干和十二地支依次搭配而成,十天干按顺序循环使用。

也就是说,在干支纪年中,同一天干每十年出现一次,而公元纪年年数采用十进位制。

由此推知,某天干必然和公元年份某一固定的尾数(个位数)相对应,于是得出十天干与公元纪年的个位数对照表如下(表二):表二:十天干与公元纪年个位数对照表根据表二,凡公元某年个位数为7,其对应的天干必为丁,若个位数是3,则对应天干是癸,余类推;凡公元前某年个位数为7,其对应的天干必为甲,若个位数是3,则对应天干是戊,余类推。

如何计算年月日时干支

如何计算年月日时干支

年月日时干支是中国传统历法中使用的一种时间计算方法,主要用于干支纪年、纪月、纪日和纪时。

干支是指天干和地支,共十干十二支,分别表示了不同的年、月、日、时。

下面将详细介绍如何计算年月日时干支。

1.干支纪年:干支纪年是以十天干和十二地支为基础,循环周期为60年。

根据甲子纪年表,可以得到甲子年为第一年,乙丑年为第二年,以此类推。

计算方法如下:-年份除以60,得到的余数对应地支的序号,余数为0时对应地支为第12位。

-年份除以10,得到的余数对应天干的序号,余数为0时对应天干为第10位。

例如,2024年对应的是辛丑年,辛为第8位天干,丑为第2位地支。

2.干支纪月:干支纪月是以天干和地支纪法来计算月份,每年的月份循环周期为12个月。

计算方法如下:-以立春为分界点,立春前为腊月,立春后为正月。

-计算年份的天干位置,例如2024年是辛丑年,辛为第8位,丑为第2位。

-计算立春的干支纪年,例如2024年的立春是在2月3日,即辛丑年的干支纪年为庚寅年。

-计算干支纪月,以立春为始,依次按照干支顺序排列,例如辛丑年的立春前一月为庚子月。

3.干支纪日:干支纪日是根据天干和地支的顺序来编号和计算每一天。

计算方法如下:-天干序号除以十,得到的余数为干日的序号,余数为0时对应干日为第10位。

-地支序号除以十二,得到的余数为支日的序号,余数为0时对应支日为第12位。

例如,2024年1月1日对应的是庚子日,庚为第7位天干,子为第1位地支。

4.干支纪时:干支纪时是在一天24小时的基础上,根据天干和地支的顺序来计算每个时辰的干支。

-从早子时开始,依次按照天干地支的顺序对应到每个时辰。

-例如,早子时对应甲子时,早丑时对应乙丑时,以此类推,晚子时再次对应甲子时。

需要注意的是,以上的计算方法是以农历为基础,对应的公历日期可能会有所不同。

同时也需要考虑到历法的变化和修正。

在实际应用中,通常可以通过查询相关的农历工具或网站来获取具体的干支纪年、纪月、纪日和纪时。

天干地支和算法详解!

天干地支和算法详解!

天干地支和算法详解!天干地支简称干支,是夏历中用来编排年号和日期用的。

天干是:甲、乙、丙、丁、戊、己、庚、辛、壬、癸,也叫天干;地支是:子、丑、寅、卯、辰、巳、午、未、申、酉、戌、亥,也称十二地支。

读音依次读作十天干:甲(jiǎ)、乙(yǐ)、丙(bǐng)、丁(dīng)、戊(wù)、己(jǐ)、庚(gēng)、辛(xīn)、壬(rén)、癸(guǐ);十二地支:子(zǐ)、丑(chǒu)、寅(yín)、卯(mǎo)、辰(chén)、巳(sì)、午(wǔ)、未(wèi)、申(shēn)、酉(yǒu)、戌(xū)、亥(hài)干支还是阴阳之分:甲、丙、戊、庚、壬为阳干,乙、丁、己、辛、癸为阴干;子、寅、辰、午、申、戌为阳支,丑、卯、巳、未、酉、亥为阴支。

以一个天干和一个地支相配,排列起来,天干在前,地支在后,天干由甲起,地支由子起,阳干配阳支,阴干配阴支(阳干不配阴支,阴干不配阳支),共有六十个组合,称为“六十甲子”。

我国人民过去就是以六十甲子循环起来纪年、纪月、纪日、纪时的。

1.甲子2.乙丑3.丙寅4.丁卯5.戊辰6.己巳7.庚午8.辛未9.壬申 10.癸酉 11.甲戌 12.乙亥 13.丙子 14.丁丑 15.戊寅 16.己卯17.庚辰 18.辛巳 19.壬午 20.癸未 21.甲申 22.乙酉 23.丙戌 24.丁亥25.戊子 26.己丑 27.庚寅 28.辛卯 29.壬辰 30.癸巳 31.甲午 32.乙未33.丙申 34.丁酉 35.戊戌 36.己亥 37.庚子 38.辛丑 39.任寅 40.癸卯41.甲辰 42.乙巳 43.丙午 44.丁未 45.戊申 46.己酉 47.庚戌 48.辛亥49.壬子 50.癸丑 51.甲寅 52.乙卯 53.丙辰 54.丁己 55.戊午 56.己未57.庚申 58.辛酉 59.壬戌 60.癸亥干支纪年法阳历年份除以60的余数减3便得该年农历干支序号数,再查上面的干支便是干支年纪。

天干地支纪年法公式

天干地支纪年法公式

天干地支纪年法是中国古代一种纪年方式,它以天干和地支的循环组合来表示年份。

在纪年法中,天干和地支各有十个字,它们按照既定的顺序循环排列,每60年为一个周期,这种纪年方式起源于中国古代的天文学和卜筮术,被广泛应用于历法和年代记述。

天干地支纪年法的起源可以追溯到商代和西周时期,当时人们观测到太阳、地球和月球的运动规律,根据这些规律制定了天干地支的纪年法。

根据这个纪年法,从古至今的年份可以用农历和阳历相互转换,并且每个年份都可以对应一个天干地支的组合,称为纪年。

这个纪年的组合是按照天干地支的顺序排列的,如甲子、乙丑、丙寅等。

年份 = (年-3) mod 60其中,年是指阳历年份。

这个公式可以将阳历年份转化为天干地支年份。

在计算年份时,需要先将阳历年份减去3,然后再对60取余数,得到的结果即为所求的天干地支纪年。

例如,公元2024年减去3得到2024,然后对60取余数,得到结果为19、根据天干地支的顺序,数字19对应的天干地支纪年是己亥。

所以,公元2024年对应的天干地支纪年是己亥年。

根据天干地支纪年法的原理,可以通过已知的天干地支纪年推算出对应的阳历年份。

具体的计算公式如下:年份=天干地支纪年+3例如,如果已知一些年份的天干地支纪年是己亥,那么可以通过将这个纪年加上3来得到对应的阳历年份。

19+3=22,所以己亥年对应的阳历年份是2024年。

天干地支纪年法在中国历史上被广泛应用于纪年、史书记载、祭祀等方面。

它不仅能够标识出每一年的特定纪年,还有助于推算过去和未来的年份。

此外,天干地支纪年法还与中国的农历有着密切的关系,它们共同组成了中国古代时间体系的重要组成部分。

这种纪年方式的应用不仅局限于中国,一些汉字文化圈的国家和地区,如日本、朝鲜等,也有使用天干地支纪年法的历法系统。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

蓝桥杯-代码填空之二
干支纪年法—歌赛新规则—红球多于白球的概率—交换变量—考拉兹猜想—利息计算
①干支纪年法
在我国古代和近代,一直采用干支法纪年。

它采用10天干和12地支配合,一个循环周期为60年。

10天干是:甲,乙,丙,丁,戊,己,庚,辛,壬,癸
12地支是:子,丑,寅,卯,辰,巳,午,未,申,酉,戌,亥
如果某年是甲子,下一年就是乙丑,再下是丙寅,.癸酉,甲戌,乙亥,丙子,.
总之天干、地址都是循环使用,两两配对。

今年(2012)是壬辰年,1911年辛亥革命
下面的代码根据公历年份输出相应的干支法纪年。

已知最近的甲子年是1984年。

void f(int year)
char* x[] = {"甲","乙","丙","丁","戊","己","庚","辛","壬","癸"};
char* y[] = {"子","丑","寅","卯","辰","巳","午","未","申","酉","戌","亥"};
int n = year - 1984;
while(n0) n += 60;
printf("%s%s", x[_______], y[_______]);
int main(int argc, char* argv[])
f(1911);
f(1970);
f(2012);
return 0;
这道题,最近的一个甲午年(就是对10或者12取模都为0)是1984年,就以它为标准,求模就可以了,
题目中也有对给出的年份小于1984年的处理(n+=60),这题难度,应该很小了。

答案: ?n%10 n%12?
②歌赛新规
歌手大赛的评分规则一般是去掉一个最高分,去掉一个最低分,剩下的分数求平均。

当评委较少的时候,如果我们只允许去掉一个分数,该如何设计规则呢?
有人提出:应该去掉与其余的分数平均值相差最远的那个分数。

即“最离群”的分数。

以下的程序用于实现这个功能。

其中x存放所有评分,n表示数组中元素的个数。

函数返回最“离群”的那个分数值。

double score(double x[], int n)
int i,j;
double dif = -1;
double bad;
for(i=0; in; i++)
double sum = 0;
for(j=0; jn; j++)
if(________) sum += x[j];
double t = x[i] - sum - (n-1);
if(t0) t = -t;
if(tdif)
bad = x[i];
printf("%d, %f", i, x[i]);
return bad;
题目很简单,就是求最离群的数字,如果让我打代码,我猜可能是求最大和最小的,然后剩下的求平均,通过它们之间的差值来查找,这题目的做法,应该是,计算n-1个平均值,来比较,所以两层循环,第一层,计算2~n的,第二层计算1,3~n。

所以if里应该是去除掉当前循环的i,对应的值再求和
答案:i!=j
③概率问题
某个袋子中有红球m个,白球n个。

现在要从中取出x个球。

那么红球数目多于白球的概率是多少呢?
下面的代码解决了这个问题。

其中的y表示红球至少出现的次数。

这与前文的问题是等价的。

因为如果取30个球,要求红球数大于白球
数,则等价于至少取出16个红球。

m: 袋中红球的数目
n: 袋中白球的数目
x: 需要取出的数目
y: 红球至少出现的次数
double pro(int m, int n, int x, int y)
if(yx) return 0;
if(y==0) return 1;
if(ym) return 0;
if(x-ny) return 1;
double p1 = _______________________;
double p2 = _______________________;
return (double)m-(m+n) * p1 + (double)n-(m+n) * p2;
刚开始,我以为要直接求出来p1,p2,但是后来一想,不对啊,代码填空题,只给了一个函数,没有给主函数那些,肯定是递归了,再加上题目中给了递归终止的条件,所以肯定是递归了。

知道了递归以后就很简单了:模拟拿球情况,要么拿了一个红球,要么拿了一个白球。

答案:pro(m-1,n,x-1,y-1) ?
pro(m,n-1,x-1,y) ?
④交换变量
如果要把两个整型变量a、b的值交换,一般要采用一个中间变量做过
渡,
但也可以在不借助任何其它变量的情况下完成。

a = _________;b = _________;a = _________;
这道题目,有很多种解法,我这里就给出两种吧,一个是用位运算—?^ ^(异或)是将两边数都转换成2进制,然后异或,
第一种方法:a=a^b,b=a^b,a=a^b
第二种方法就是 ?a=a+b,b=a-b,a=a-b
⑤考拉兹猜想
“考拉兹猜想”(又称3n+1猜想、角谷猜想、哈塞猜想、乌拉姆猜想或叙拉古猜想)和“哥德巴赫猜想”一样目前还没有用数学方法证明其完全成立。

在1930年,德国汉堡大学的学生考拉兹,曾经研究过这个猜想,因而得名。

在1960年,日本人角谷静夫也研究过这个猜想。

该猜想的叙述十分简单:从任何一个正整数n出发,若是偶数就除以2,若是奇数就乘3再加1,如此继续下去,经过有限步骤,总能得到1。

例如:17-52-26-13-40-20-10-5-16-8-4-2-1
该猜想虽然没有完全证明,但用计算机验证有限范围的数字却十分容易。

for(int n=2; n=10000; n++)
int m = n;
for(;;)
if(____________)
m = m * 3 + 1;
if( m == 1 )
printf("%d ok! ", n);
这道题,额,看起来很高端大气上档次,猜想也很厉害的样子,但是空就有些。

根据题目所给,遇到偶数时 ?该数除以2,所以答案就是判断m是不是偶数: m%2==0
⑥利息计算
小李年初在银行存款1千元(一年定期)。

他计划每年年底取出100元救助失学儿童。

假设银行的存款利率不变,年利率为3%,年底利息自动计入本金。

下面的代码计算5年后,该账户上有多少存款。

double money = 1000;
int n = 5;
for(i=0; in; i++)
money = _______________;
money -= 100;
printf("%.2f", money);
这道题啊,唉,每年年末,要把本金加上利息都算上再存进去,扣的钱就不需要减了,下面代码帮助你减了。

答案:money=money*1.03
这道题目,有很多种解法,我这里就给出两种吧,一个是用位运算—?^ 可以先猜测一个数,比如1.5,然后用2除以这个数字。

如果我们猜对
了,则除法的结果必然与我们猜测的数字相同。

我们猜测的越准确,除法的结果与猜测的数字就越接近。

相关文档
最新文档