2009年2月14日用天干地支怎么表示

问题描述:

2009年2月14日用天干地支怎么表示
1个回答 分类:数学 2014-10-19

问题解答:

我来补答
公历转换为干支历
先看年干支的计算.在y年,如2005年则是y=2005;而公元前的年代要转为负号年代,如公元前2070年则为y=-2069.计算a值:a=y-4;再计算gz值:gz=a-[a/60]*60,其中[ ]表明是取整运算,如[8.75]=8.如果gz值为负,则gz=gz+60,使其为正值.这个gz值就是六十甲子的编号.例如,对2005年,y=2005,a=2001,a/60=33.35,[a/60]=33,gz=21,而21就是乙酉,说明2005年是乙酉年.对公元前2070年,y= -2069,a= -2073,a/60= -34.55,[a/60]= -34,gz= -33,gz= -33+60=27,则前2070年为辛卯年.
也可以从a值分别计算年天干或年地支.天干值为:g=a-[a/10]*10,若g是负数则g=g+10.地支值为:z=a-[a/12]*12,若z是负数则z=z+12.例如,公元前2070年,a= -2073,g = -3,g=7,z= -9,z=3.g值为7对应天干的“辛”,z值为3对应地支的“卯”,因此前2070年为辛卯年.
再看日干支的计算,主要是先将公历日期转换为儒略日,再由儒略日来计算日干支.因为儒略日是以正午开始新的一天,这里我们不妨约定某日的儒略日是对应于该日正午的.而计算儒略日的方法有很多种,这里只选一种适于编程的方法(括号内的是举例):
1)对于y年m月d日.(如2005年2月9日12时,则y = 2005,m = 2,d=9)
2)如果是1月和2月(m=1和m=2)则:m=m+12,y=y-1.(因m=2,则m=14,y=2004)
3)计算a值:a=[30.6001*(m+1)] .(a=[30.6001*(14+1)]=[459.0015]=459)
4)计算b值:在1582年10月4日以前(含),b=0;在1582年10月15日以后(含),b=2-[y/100]+[y/400].(因在1582年之后,b=2-[2004/100]+[2004/400]=2-20+5= -13)
5)计算c值:如果y<0,c=[365.25*y-0.75]-694025;如果y0,c=[365.25*y]-694025.(因y>0,c=[365.25*2004]-694025=731961-694025=37936)
6)计算约化儒略日mjd值(以1900年1月0.5日起算的天数):mjd=a+b+c+d.(mjd=459-13+37936+9=38391)
7)计算儒略日jd值:jd=mjd+2415020.(jd=38391+2415020=2453411)
从举例来看,2005年2月9日12时的儒略日为2453411,或略去12时而称2005年2月9日的儒略日为2453411.在计算儒略日时,对于公元前的年代,同样要注意先将其转为负号年代.
而将儒略日转换为日干支就非常简单了.对于儒略日jd值,计算ad值:ad=jd-11;再计算gz值:gz=ad-[ad/60]*60,这就是干支编号.例如儒略日为2453411,则ad=2453400,gz=0,对应干支为甲子,表明该日为甲子日.也可以从ad值分别计算日天干或日地支.天干值为:g=ad-[ad/10]*10,地支值为:z=ad-[ad/12]*12.
顺便提一句,用儒略日来计算星期几也很容易.对于儒略日jd值,计算ax值,ax=jd+1;再计算xq值:xq=ax-[ax/7]*7,xq值为0时是星期日,其余的值是几就是星期几.如2005年2月9日的儒略日为2453411,ax=2453412,xq=3,则该日为星期三.
 
 
展开全文阅读
剩余:2000