///月份数据表
code uchar day_code1[9]={0x0,0x1f,0x3b,0x5a,0x78,0x97,0xb5,0xd4,0xf3}
code uint day_code2[3]={0x111,0x130,0x14e}
/*
函数功能:输入BCD阳历数据,输出BCD阴历数据隐段(只允许1901-2099年)
调用函数示例:Conversion(c_sun,year_sun,month_sun,day_sun)
如:计算2004年10月16日Conversion(0,0x4,0x10,0x16)
c_sun,year_sun,month_sun,day_sun均为BCD数据,c_sun为世纪标志位,c_sun=0为21世盯携或
纪,c_sun=1为19世纪
调用函数后,原有数据不变,读c_moon,year_moon,month_moon,day_moon得出阴历BCD数据
*/
bit c_moon
data uchar year_moon,month_moon,day_moon,week
/*子函数,用于读取数据表中农历月的大月或小月,如果该月为大返回1,为小返回0*/
bit get_moon_day(uchar month_p,uint table_addr)
{
uchar temp
switch (month_p)
{
case 1:{temp=year_code[table_addr]&0x08
if (temp==0)return(0)else return(1)}
case 2:{temp=year_code[table_addr]&0x04凯伍
if (temp==0)return(0)else return(1)}
case 3:{temp=year_code[table_addr]&0x02
if (temp==0)return(0)else return(1)}
case 4:{temp=year_code[table_addr]&0x01
if (temp==0)return(0)else return(1)}
case 5:{temp=year_code[table_addr+1]&0x80
if (temp==0) return(0)else return(1)}
case 6:{temp=year_code[table_addr+1]&0x40
if (temp==0)return(0)else return(1)}
case 7:{temp=year_code[table_addr+1]&0x20
if (temp==0)return(0)else return(1)}
case 8:{temp=year_code[table_addr+1]&0x10
if (temp==0)return(0)else return(1)}
case 9:{temp=year_code[table_addr+1]&0x08
if (temp==0)return(0)else return(1)}
case 10:{temp=year_code[table_addr+1]&0x04
if (temp==0)return(0)else return(1)}
case 11:{temp=year_code[table_addr+1]&0x02
if (temp==0)return(0)else return(1)}
case 12:{temp=year_code[table_addr+1]&0x01
if (temp==0)return(0)else return(1)}
case 13:{temp=year_code[table_addr+2]&0x80
if (temp==0)return(0)else return(1)}
}
}
/*
函数功能:输入BCD阳历数据,输出BCD阴历数据(只允许1901-2099年)
调用函数示例:Conversion(c_sun,year_sun,month_sun,day_sun)
如:计算2004年10月16日Conversion(0,0x4,0x10,0x16)
c_sun,year_sun,month_sun,day_sun均为BCD数据,c_sun为世纪标志位,c_sun=0为21世
纪,c_sun=1为19世纪
调用函数后,原有数据不变,读c_moon,year_moon,month_moon,day_moon得出阴历BCD数据
*/
void Conversion(bit c,uchar year,uchar month,uchar day)
{ //c=0 为21世纪,c=1 为19世纪 输入输出数据均为BCD数据
uchar temp1,temp2,temp3,month_p
uint temp4,table_addr
bit flag2,flag_y
temp1=year/16//BCD->hex 先把数据转换为十六进制
temp2=year%16
year=temp1*10+temp2
temp1=month/16
temp2=month%16
month=temp1*10+temp2
temp1=day/16
temp2=day%16
day=temp1*10+temp2
//定位数据表地址
if(c==0)
{
table_addr=(year+0x64-1)*0x3
}
else
{
table_addr=(year-1)*0x3
}
//定位数据表地址完成
//取当年春节所在的公历月份
temp1=year_code[table_addr+2]&0x60
temp1=_cror_(temp1,5)
//取当年春节所在的公历月份完成
//取当年春节所在的公历日
temp2=year_code[table_addr+2]&0x1f
//取当年春节所在的公历日完成
// 计算当年春年离当年元旦的天数,春节只会在公历1月或2月
if(temp1==0x1)
{
temp3=temp2-1
}
else
{
temp3=temp2+0x1f-1
}
// 计算当年春年离当年元旦的天数完成
//计算公历日离当年元旦的天数,为了减少运算,用了两个表
//day_code1[9],day_code2[3]
//如果公历月在九月或前,天数会少于0xff,用表day_code1[9],
//在九月后,天数大于0xff,用表day_code2[3]
//如输入公历日为8月10日,则公历日离元旦天数为day_code1[8-1]+10-1
//如输入公历日为11月10日,则公历日离元旦天数为day_code2[11-10]+10-1
if (month<10)
{
temp4=day_code1[month-1]+day-1
}
else
{
temp4=day_code2[month-10]+day-1
}
if ((month>0x2)&&(year%0x4==0))
{ //如果公历月大于2月并且该年的2月为闰月,天数加1
temp4+=1
}
//计算公历日离当年元旦的天数完成
//判断公历日在春节前还是春节后
if (temp4>=temp3)
{ //公历日在春节后或就是春节当日使用下面代码进行运算
temp4-=temp3
month=0x1
month_p=0x1//month_p为月份指向,公历日在春节前或就是春节当日month_p指向首月
flag2=get_moon_day(month_p,table_addr)
//检查该农历月为大小还是小月,大月返回1,小月返回0
flag_y=0
if(flag2==0)temp1=0x1d//小月29天
else temp1=0x1e//大小30天
temp2=year_code[table_addr]&0xf0
temp2=_cror_(temp2,4)//从数据表中取该年的闰月月份,如为0则该年无闰月
while(temp4>=temp1)
{
temp4-=temp1
month_p+=1
if(month==temp2)
{
flag_y=~flag_y
if(flag_y==0)
month+=1
}
else month+=1
flag2=get_moon_day(month_p,table_addr)
if(flag2==0)temp1=0x1d
else temp1=0x1e
}
day=temp4+1
}
else
{ //公历日在春节前使用下面代码进行运算
temp3-=temp4
if (year==0x0)
{
year=0x63c=1
}
else year-=1
table_addr-=0x3
month=0xc
temp2=year_code[table_addr]&0xf0
temp2=_cror_(temp2,4)
if (temp2==0)
month_p=0xc
else
month_p=0xd//
/*month_p为月份指向,如果当年有闰月,一年有十三个月,月指向13,无闰月指向12*/
flag_y=0
flag2=get_moon_day(month_p,table_addr)
if(flag2==0)temp1=0x1d
else temp1=0x1e
while(temp3>temp1)
{
temp3-=temp1
month_p-=1
if(flag_y==0)month-=1
if(month==temp2)flag_y=~flag_y
flag2=get_moon_day(month_p,table_addr)
if(flag2==0)temp1=0x1d
else temp1=0x1e
}
day=temp1-temp3+1
}
c_moon=c//HEX->BCD ,运算结束后,把数据转换为BCD数据
temp1=year/10
temp1=_crol_(temp1,4)
temp2=year%10
year_moon=temp1|temp2
temp1=month/10
temp1=_crol_(temp1,4)
temp2=month%10
month_moon=temp1|temp2
temp1=day/10
temp1=_crol_(temp1,4)
temp2=day%10
day_moon=temp1|temp2
}
/*************************************************************************
/*函数功能:输入BCD阳历数据,输出BCD星期数据(只允许1901-2099年)
调用函数示例:Conver_week(c_sun,year_sun,month_sun,day_sun)
如:计算2004年10月16日Conversion(0,0x4,0x10,0x16)
c_sun,year_sun,month_sun,day_sun均为BCD数据,c_sun为世纪标志位,c_sun=0为21世
纪,c_sun=1为19世纪
调用函数后,原有数据不变,读week得出阴历BCD数据
*/
code uchar table_week[12]={0,3,3,6,1,4,6,2,5,0,3,5}//月修正数据表
/*
算法:日期+年份+所过闰年数+月较正数之和除7 的余数就是星期但如果是在
闰年又不到3 月份上述之和要减一天再除7
星期数为0
*/
void Conver_week(bit c,uchar year,uchar month,uchar day)
{//c=0 为21世纪,c=1 为19世纪 输入输出数据均为BCD数据
uchar temp1,temp2
temp1=year/16//BCD->hex 先把数据转换为十六进制
temp2=year%16
year=temp1*10+temp2
temp1=month/16
temp2=month%16
month=temp1*10+temp2
temp1=day/16
temp2=day%16
day=temp1*10+temp2
if (c==0){year+=0x64} //如果为21世纪,年份数加100
temp1=year/0x4//所过闰年数只算1900年之后的
temp2=year+temp1
temp2=temp2%0x7//为节省资源,先进行一次取余,避免数大于0xff,避免使用整型数据
temp2=temp2+day+table_week[month-1]
if (year%0x4==0&&month<3)temp2-=1
week=temp2%0x7
}
农历新历怎么计算? 你说的新历即公历,也称阳历。是以地球绕太阳一周的时间定为一年,共365天零5小时多近6小时,平年只算365天。那多出的5小时多近6小时,平均约每隔4年加一天到2月份,所以有时公历的2月就有29天。而你说的农历即阴历,也称夏历。以月亮圆缺一次的时间为一个月,每月29天半。一年约为355天,大月30天,小月29天。由于农历一年的天数与地球年(公历)相差约11日左右,所以约每3年要置一闰月,每19年要置7个闰月,使得平均每年的天数跟地球年(公历)全年的天数相接近,来调整四季。具体闰哪个月,则要视节气情况灵活而定,如今年便是闰5月。
正由于公历和农历的计算方法不同使每年的天数不同,而每年的第一天的起始时间也不同,所以使公历和农历的月份和日期不同步,大致相差一个月左右。
因为农历是我国历史上一直采用的历法,所以我国绝大多数的地方都是以出身时的农历来确定人的生日,这也是一种民族习惯。
但由于公历计时准确且方便,因此世界上大多数国家都采用公圆扮历,我国也早在辛亥革命后的1912年正式采用公历。所以在正式的场合出身年月都是用公历,如身份z、档案记录、履历表等等。
你会查万年历,了解了以上的情况后就容易懂了。再告诉你一个很简单的方法看万年历,一般在上面用 *** 数字标示的是公历的日期,在 *** 数字下面用中文数字标瞎贺示的就是农历的日期。
如你说的1991年4月7日出生的:
1、如果这是公历的日期,那万年历上对应的 *** 数字4月7日下面的中文数字二月二十三就是你农历的生日。
2、如果这是农历的日期,那万年历上对应的中文数字四月初七上面的 *** 数字5月20日就是你公历的生日。
生日农历新历怎么算啊? 这个要看你们那边的风俗习惯了。一般城市里的生日按你当年出生的阳历日期算,也就是说你的生日是8月9日。而一般农村会按阴历算,你功生日便成了每年的农历7月14日。这两个日期,一般选一个过生日,当然,也有极品的两个生日都过。最后,提前祝你生日快乐!
农历与阳历如何计算 阴历阳历转换计算公式
1、阳历日期推算阴历日期的方法:
前已述及阴历日期是以月亮的圆缺为计月单位,其以逢朔为初一,以月望为十五(大月为十六日),以月晦为二十九日(大月为三十日)。
如要知道1984年6月8日是阴历几日?可以利用公式推算阴历日期: 设:公元年数-1977(或1901)=4Q+R
则:阴历日期=14Q+10.6(R+1)+年内日期序数-29.5n (注:式中Q、R、n均为自然数,R>
怎么算农历和阳历啊 10分 阳历日期推算阴历日期的方法:前已述及阴历日期是以月亮的圆缺为计月单位,其以逢朔为初一,以月望为十五(大月为十六日),以月晦为二十九日(大月为三十日)。然而目前记时通常用阳历日期表达,如欲将阳历日期换算成阴历日期可以用以下两种方法:其一是查《新编万年历》,如查1984年6月8日是阴历几日?翻开万年历6月10日是阴历十一,则逆推6月8日是阴历初九。其二可以利用公式推算阴历日期:
设:公元年数-1977(或1901)=4Q+R
则:阴历日期=14Q+10.6(R+1)+年内日期橘神灶序数-29.5n
(注:式中Q、R、n均为自然数,R 阴历和阳历与公历和农历有什么关系,时间上是怎么算的? 简单来说:阳历是按太阳算的,地球绕太阳一圈是365天六小时,农历(阴历)就是月亮了,(如:每个月十五月亮都是圆的)绕太阳一周是355天,农历一般比阳历慢一个月左右,由于农历每年比阳历少了约十天,所以农历走的快,这样的话一年快十天,十年就是一百天了,为了达到阴阳历平衡,所以嘛农历就会隔几年出现一个闰月,就这样每六十年,太阳月亮地球就会回到原来的起点,干支计年称一个“甲子”所以每隔六十年,农历和阳历就又对上号了,其实万年历只要有六十年就够了。
阳历阴历公历农历怎么分的 只是我们现在的叫法不同。公历=阳历 农历=阴历
农历和公历是怎么转换的?(怎么算的?) 你是要口算还是要用笔算?
告诉你,这样子算不靠谱的,根本算不出来,涉及到的转换不是简单的几个公式能得出,相反,它的转换相当复杂。
如果有兴趣编写程序的,我可以提供转换函数库,调用一个函数就可以实现农历与公历的互转了。
目前我已经完美地实现了转换,如果需要,我可以提供。
公历算旧历还是新历 阳历 也就是公历 也就是新历
1月20日-2月18日
守护星:天王星 (象征智慧及变数)
传统守护星:土星(象征考验及规则)
诞生石:紫水晶
属性:风相星座
吉祥物:竖琴螺
吉祥金属:铂或镭
水瓶侍者甘尼美德吉祥数字:4、13、22、31
吉祥日:星期三
掌管宫位:第十一宫
守护神:乌拉诺斯 雅典娜
正面特质:独立 冷静 神秘
特质:冷酷 不合群 孤僻 不稳定 无法捉摸 反叛
三方态:固定
最大特征:求知
关键词:心灵交流
水瓶座精美壁纸代表号:星期六
掌管身体:小腿、循环系统、踝部
颜色:古铜色
开运运动:瑜珈
开运力量:参加科技展
破运死穴:缺乏自我
人生乐事:花样、原创
人生痛苦:缺乏心灵自由
不利条件:漫不经心。
探究:人和事物的内在联系。
弱点:性格充满矛盾。
有缘份的星座:天秤座、双子座
没缘份的星座:巨蟹座
特色:自由、平等、博爱
理想的工作:原创家、计算机、科学研究者及各个行业的尖端领域
喜欢的场所:摄影棚、照相馆、电影院、广播电台、摩天大楼、塔式建筑、收音机场、会议室
约会场所:各式展览场合,天文台,咖啡店,自由交谈的派对,高科技主题乐园等
十二星座中仅有的两个没有生命象徵的星座之一(另一个是天秤座)
这个星座常被称为天才星座或未来星座!是近神星座之一。代表神的思想。
{星座物语}
珠宝:雪花石、珍珠
金属:银
号码:4、13、22、31
日期:星期三
色:紫色、亮色、白色
花朵:樱花草、洋水仙
物品:香水、精致脚链
季节:冬季
场所:科技博物馆
恋爱地:冷饮店
痣:发际、手腕、脚跟
冬天生辰在水瓶座的人,内心像寒冬一样冰冷。是神秘主义者。有天生的理性了解人类内心的本性,同时拥有高度的容忍力,富于研究精神,喜爱一切新颖的东西,能接受新的发现。具有好的观察能力及建立理论的能力,常常造成天才人物、发明家、科学家或成为一位精明的人类行为研究者。但为达目标,不会走暴力极端的方法,会赞成举行公民自决,具有温和的态度。
本质上喜欢孤独的水瓶座,在他的性格上,隐藏着保守的一面。水瓶座的人顽固得不容易改变自己的意见或主张,但另一方面却又极端讨厌和别人争执及暴力。有时在快要跟别人起正面冲突时,他会装做完全不知道有笸对声音的样子,而按自己想做的去做。
水瓶的性格其实是12个星座中最难测的一个,这样说的原因是因为连水瓶自己都经常不明白自己。崇尚自由的水瓶座人,外表上呈现冷漠与热情的交变型态。你不会觉得他是个冷漠的人,也不会认定他是个热情的人,总是感到他的天真与世故不断地交错运作。这完全肇因于他的保守性格。你很不容易见到一只瓶子把自己摔碎,不过一旦你见到了,要相信,他是真的想一碎了之。别企图拼凑他,只能期待碎瓶片浴火重生。以保守性格追求自由、开放与前进,陷水瓶座于温情主义的泥沼中,易如反掌。但也因着内、外的背道而驰,使得他对自我和世界的反省能力,与日俱增。
水瓶是精神性的动物,是12个星座性格中最重视精神的,所以对物质的欲望较低。水瓶座的人,不愿意受感情上的丝毫束缚。你时而异想天开,幽默过人,时而又冷若冰霜,令人费解,这常常是一个不易相处的人。有优秀的推理力和创造力,客观、冷静,善于思考,思想博爱,讲求科学、逻辑和概念,价值观很强。是一个对超能力、超自然现象会积极证明,忠于自己信念,又令人难以捉摸的星座。
水瓶座的人善于重新组织所有人的......>>
农历公历怎么算 这个要看你们那边的风俗习惯了。一般城市里的生日按你当年出生的阳历日期算,也就是说你的生日是8月9日。而一般农村会按阴历算,你的生日便成了每年的农历7月14日。这两个日期,一般选一个过生日,当然,也有极品的两个生日都过。最后,提前祝你生日快乐!
农历怎么计算日子的 农历是古时候按太阳得运行总结出来得一套计算日子得方法。
一般得每四年都会有一个闰年,就是每四年就会多一天。
关于农历的知识
农历(夏历,殷历,古历,黄历,旧历)
农历,是把朔望月的时间作为历月的平均时间。这一点上和纯粹的阴历相同,但农历运用了设置闰月的办法和二十四节气的办法,使历年的平均长度等于回归年,这样它就又具有了阳历的成分,所以它比纯粹的阴历好。
现在所有的农历,据说我们的祖先远在夏代(公元前17世纪以前)就使用了这种历法。所以人们又称它为夏历。解放后还仍然叫做夏历,1970年以后我国改称为农历。至于农历一名的由来,大概因为由于自古以农立国,所以制订历法必须为农业服务。
农历的历月是以朔望月为依据的。朔望月的时间是29日12小时44分3秒(即29.5366日),因此农历也是大月30天,小月29天,但它和纯粹的阴历并不完全一样,因为纯粹的阴历是大小月交替编排的,而农历年大小月是经过推算决定的。
农历每一个月初一都正好是朔(即月亮在太阳地球中间,且以黑着的半面对着地球的时候)。有时可能出现两个大月,也可以连续出现两个小月。由于朔望月稍大于29天半,所以在农历的每100个历月里约有53个大月和47个小月。
农历是基本上以12个月作为一年的,但12个朔望月的时间是354.3667日,和回归年比起来要相差11天左右。这样每隔3年就要多出33天,即多出一个多月。
为了要把多余的日数消除,每隔3年就要加一个月,这就是农历的闰月。有闰月的一年也叫闰年。所以农历的闰年就有13个月了。至于闰哪个月是由节气情况决定的。
农历作为阴阳历的一种,每月的天数依照月亏而定,一年的时间以12个月为基准;为了合上地球围绕太阳运行周期即回归年,每隔2到3年,增加一个月,增加的这个月为闰月,因此农历的闰年为13个月。
农历没有第十三月的称谓,闰月按照历法规则,排放在从二月到十月的过后重复同一个月,重复的这个月为闰月,如四月过后的闰月称为闰四月。
农历闰年闰月的推算,3年一闰,5年二闰,19年七闰;农历基本上19年为一周期对应于公历同一时间。如公历的2001年5月27日、1982年5月27日和1963年5月27日这个日子,都是闰四月初五。
闰月加到哪个月,以农历历法规则推断,主要依照与农历的二十四节气相符合来确定;
农历的闰月天数与正常月份天数一样,为29或30天。
农历所谓“闰”的说法,只有闰年和闰月称谓,公历也有闰年的称谓。
农历月份的别称
一月:正月、隅月、孟月、端月、始春、元春;
二月:如月、杏月、仲春、早春;
三月:病月、桃月、季春、炳月、三春、阳春、暮春;
四月:余月、清和月、桃月、孟夏;
五月:榴月、薄月、仲夏;
六月:且月、荷月、伏月、季夏;
七月:相月、巧月、霜月、孟秋、桐月;
八月:壮月、桂月、仲秋、中秋月:
九月:亥月、菊月、季秋;
十月:阳月、小阳春、孟冬;
十一月:辜月、葭月、仲冬;
十二月:涂月、腊月、嘉平月,季冬。
农历的一个月的前十天按顺序习惯上称为初日,如农历的一月二日称为正月初二,当然说1月2日也是对的。
农历的正月(一年的第一个月)的开始都是在公元纪年的1月20日后至2月底之前。如农历的正月初一可能是1月21日,也可能是2月20日;反之,农历一年的最后一天也是公元纪年的1月20日至2月底前。
农历大小月卦口诀
一年上下两卦编,一七两月初爻安。
阴大阳我上卦,遇有闰月年十......>>
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)