农历数据库 农历数据表_运程_十二生肖

十二生肖>十二星座>运程

农历数据库 农历数据表

时间:2023-10-28 06:35:15 作者:鸳鸯戏水

一篇好的文章需要好好的打磨,你现在浏览的文章是一篇关于农历数据库 农历数据表的文章,本文对文章农历数据库 农历数据表好好的分析和解答,希望你能喜欢,只有你喜欢的内容存在,只有你来光临,我们才能继续前行。

农历数据库 农历数据表

阴历和阳历生日转换器,阳历生日转换阴历生日

提起阴历和阳历生日转换器,大家都知道,有人问必须历转换成阳历,找这么一量转换的工具,另外,还有人想问阴历与阳历的生日转换,你知道这是怎么回事?其实农历新历转换器,下面就一起来看看阳历生日转换阴历生日,希望能够帮助到大家!

阴历和阳历生日转换器

阳历生日是年7月9日星期日,转成阴历是年六月十二,生肖属猪,距离今日已经过去天。

阴历甲午()年六月十二,距离今日还宏厅皮有天。(阳历是年7月8日星期二)查生日阴历阳历对照表。

阳历生日转换阴历生日?如何查询自己的阴历生日。

生日 如何农历转换公历?

出生是年6月23日出生日期查询农历生日。

如果这时间您给的是阳历,那么阴历伏则你就是5月23日是生日。以后无论那一年的阴历5月23日都是你的生日。

有了阴历生日,变换的就是阳历得日子。每一年的日历牌您都可以查出对应的历日子。

以92年6月23日为阴历日子计算,年您的阳历生日是7月25日。以此类推。祝开心,生日快乐!

阴历和阳历生日转换器:必须历转换成阳历,找这么一量转换的工具

单独查询的话,万年历就行。万年历农历公历转换。

找个阳历日期转换为阴历日期程序,加一个循环,我一段程序就行了

找不到高手?让文员查他几个小时就行了

如何在EXCEL中实现生日阳历到阴历的批量转换。

OptionExplicit

DimWeekName(7),MonthAdd(11),NongliData(99),TianGan(9),DiZhi(11),ShuXiang(11),DayName(30),MonName(12)

DimcurTime,curYear,curMonth,curDay,curWeekday阴历和公历的转换器。

DimGongliStr,WeekdayStr,NongliStr,NongliDayStr万年历大全。

Dimi,m,n,k,isEnd,bit,TheDate

Dimyear,month,day,grid,grid_date

Subdatetest()’这是转换样例农历生日计算器。

Debug.Printcalendar(“-8-15”)

EndSub生日查询系统。

Functioncalendar(grid)’转换函数1800~2100年公历农历对照表。

grid_date=grid星座查询农历转换阳历。

year=Mid(grid_date,1,4)阴历四月三十是阳历几月几号。

month=Mid(grid_date,6,1)阳历6月26生日农历是几号。

day=Mid(grid_date,8,2)今天是农历几月几日几号。

‘星期名

WeekName(0)=””

WeekName(1)=”星期日”公历如何换算成农历。

WeekName(2)=”星期一”

WeekName(3)=”星期二”农历3月20生日阳历是多少。

WeekName(4)=”星期三”

WeekName(5)=”星期四”时辰阳历公历不分吗。

WeekName(6)=”星期五”

WeekName(7)=”星期六”

‘天干名称

TianGan(0)=”甲”有没有1900以前的万年历。

TianGan(1)=”乙”

TianGan(2)=”丙”

TianGan(3)=”丁”

TianGan(4)=”戊”

TianGan(5)=”己”生日日期计算器。

TianGan(6)=”庚”阴历阳历公式。

TianGan(7)=”辛”

TianGan(8)=”壬”

TianGan(9)=”癸”农历和新历生日怎么算。

‘地支名蔽差称阳历1971年10月28日。

DiZhi(0)=”子”

DiZhi(1)=”丑”农历1999年7月14日生日新历是。

DiZhi(2)=”寅”

DiZhi(3)=”卯”上的生日在日历上怎么看。

DiZhi(4)=”辰”

DiZhi(5)=”巳”

DiZhi(6)=”午”1月18号阳历生日。

DiZhi(7)=”未”

DiZhi(8)=”申”

DiZhi(9)=”酉”

DiZhi(10)=”戌”

DiZhi(11)=”亥”

‘属相名称

ShuXiang(0)=”鼠”

ShuXiang(1)=”牛”

ShuXiang(2)=”虎”

ShuXiang(3)=”兔”

ShuXiang(4)=”龙”

ShuXiang(5)=”蛇”

ShuXiang(6)=”马”

ShuXiang(7)=”羊”

ShuXiang(8)=”猴”

ShuXiang(9)=”鸡”

ShuXiang(10)=”狗”

ShuXiang(11)=”猪”

‘农历日期名

DayName(0)=””

DayName(1)=”初一”

DayName(2)=”初二”

DayName(3)=”初三”

DayName(4)=”初四”

DayName(5)=”初五”

DayName(6)=”初六”

DayName(7)=”初七”

DayName(8)=”初八”

DayName(9)=”初8221;

DayName(10)=”初8221;

DayName(11)=”十一”

DayName(12)=”十二”

DayName(13)=”十三”

DayName(14)=”十四”

DayName(15)=”十五”

DayName(16)=”十六”

DayName(17)=”十七”

DayName(18)=”十八”

DayName(19)=”十8221;

DayName(20)=”二8221;

DayName(21)=”二十一”

DayName(22)=”二十二”

DayName(23)=”二十三”

DayName(24)=”二十四”

DayName(25)=”二十五”

DayName(26)=”二十六”

DayName(27)=”二十七”

DayName(28)=”二十八”

DayName(29)=”二十8221;

DayName(30)=”三8221;

‘农历月份名

MonName(0)=””

MonName(1)=”正”

MonName(2)=”二”

MonName(3)=”三”

MonName(4)=”四”

MonName(5)=”五”

MonName(6)=”六”

MonName(7)=”七”

MonName(8)=”八”

MonName(9)=”8221;

MonName(10)=”8221;

MonName(11)=”十一”

MonName(12)=”腊”

‘公历每月前面的天数

MonthAdd(0)=0

MonthAdd(1)=31

MonthAdd(2)=59

MonthAdd(3)=90

MonthAdd(4)=

MonthAdd(5)=

农历新历转换器

MonthAdd(6)=

MonthAdd(7)=

MonthAdd(8)=

MonthAdd(9)=

MonthAdd(10)=

MonthAdd(11)=

‘农历数据

NongliData(0)=

NongliData(1)=

NongliData(2)=

NongliData(3)=

NongliData(4)=

NongliData(5)=

NongliData(6)=

NongliData(7)=

NongliData(8)=

NongliData(9)=

NongliData(10)=

NongliData(11)=

NongliData(12)=

NongliData(13)=

NongliData(14)=

NongliData(15)=

NongliData(16)=

NongliData(17)=

NongliData(18)=

NongliData(19)=

NongliData(20)=

NongliData(21)=

NongliData(22)=

NongliData(23)=

NongliData(24)=

NongliData(25)=

NongliData(26)=

NongliData(27)=

NongliData(28)=

NongliData(29)=

NongliData(30)=

NongliData(31)=

NongliData(32)=

NongliData(33)=

NongliData(34)=

NongliData(35)=

NongliData(36)=

NongliData(37)=

NongliData(38)=

NongliData(39)=

NongliData(40)=

NongliData(41)=

NongliData(42)=

NongliData(43)=

NongliData(44)=

NongliData(45)=

NongliData(46)=

NongliData(47)=46

NongliData(48)=

NongliData(49)=

NongliData(50)=

NongliData(51)=

NongliData(52)=

NongliData(53)=

NongliData(54)=

NongliData(55)=

NongliData(56)=

NongliData(57)=

NongliData(58)=

NongliData(59)=

NongliData(60)=

NongliData(61)=

NongliData(62)=

NongliData(63)=

NongliData(64)=

NongliData(65)=

NongliData(66)=

NongliData(67)=

NongliData(68)=

NongliData(69)=

NongliData(70)=

NongliData(71)=

NongliData(72)=

NongliData(73)=

NongliData(74)=

NongliData(75)=

NongliData(76)=

NongliData(77)=

NongliData(78)=

NongliData(79)=

NongliData(80)=

NongliData(81)=

NongliData(82)=

NongliData(83)=

NongliData(84)=

NongliData(85)=

NongliData(86)=

NongliData(87)=

NongliData(88)=

NongliData(89)=

NongliData(90)=

NongliData(91)=

NongliData(92)=

NongliData(93)=

NongliData(94)=

NongliData(95)=

NongliData(96)=

NongliData(97)=

NongliData(98)=

NongliData(99)=

‘生成当前公历年、月、日==>GongliStr

curYear=year

curMonth=month

curDay=day

GongliStr=curYear&”年”

If(curMonth<10)Then

GongliStr=GongliStr&”0″&curMonth&”月”

Else

GongliStr=GongliStr&curMonth&”月”

EndIf

If(curDay<10)Then

GongliStr=GongliStr&”0″&curDay&”日”

Else

GongliStr=GongliStr&curDay&”日”

EndIf

‘生成当前公历星期==>WeekdayStr

curWeekday=Weekday(curTime)

WeekdayStr=WeekName(curWeekday)

‘计算到初始时间年2月8日的天数:-2-8(正月初一)

TheDate=(curYear-)+Int((curYear-)/4)+curDay+MonthAdd(curMonth-1)-38

If((curYearMod4)=0AndcurMonth>2)Then

TheDate=TheDate+1

EndIf

‘计算农历天干、地支、月、日

isEnd=0

m=0If(NongliData(m)<)Then

k=11

Else

k=12

EndIf

n=kIf(n<0)Then

ExitDo

EndIf

‘获取NongliData(m)的第n个二进制位的值

bit=NongliData(m)

Fori=1TonStep1

bit=Int(bit/2)

Next

bit=bitMod2

If(TheDate<=29+bit)Then

isEnd=1

ExitDo

EndIf

TheDate=TheDate-29-bit

n=n-1

Loop

If(isEnd=1)Then

ExitDo

EndIf

m=m+1

Loop

curYear=+m

curMonth=k-n+1

curDay=TheDate

If(k=12)Then

If(curMonth=(Int(NongliData(m)/)+1))Then

curMonth=1-curMonth

ElseIf(curMonth>(Int(NongliData(m)/)+1))Then

curMonth=curMonth-1

EndIf

EndIf

‘生成农历天干、地支、属相==>NongliStr

NongliStr=”农历”&TianGan(((curYear-4)))&DiZhi(((curYear-4)))&”年”

NongliStr=NongliStr&”(“&ShuXiang(((curYear-4)))&””

‘生成农历月、日==>NongliDayStr

If(curMonth<1)Then

NongliDayStr=”闰”&MonName(-1curMonth)

Else

NongliDayStr=MonName(curMonth)

EndIf

NongliDayStr=NongliDayStr&”月”

NongliDayStr=NongliDayStr&DayName(curDay)

calendar=NongliStr&NongliDayStr&”)”

EndFunction

万年历查询程序. C语言代码

除了天数差计算,基本上是完成了你所提出的功能(天数差计算其实已经提供了年内序数计算方方法,可以在此基础上完善即可)。包含星期计算、公历转农历、农历转公历、节气查询。数据与算法均为原创,绝非网上复制而来。附消态瞎件中有源代码,同时附带农历数据提取工具,可提取1600到7000年之间的任意年份区间,提取后的数据为压缩数据,占用空间小,同时数据包含数九、三伏、入梅和出梅,非常适合写一份完整的万年历。

//判断闰年,参数:年份,返回值:0-平年,1-闰年

intIsLeapYear(intiYear);

//计算日期在年内的序数,参数:年,月,日,年闭世内序数,返回值:0-失败,1-成功

intGetDaysNumInYear(intiYear,intiMonth,intiDay,int*nDays);

//从年内序数计算月、日,参数:年,年内序数,月,日,返回值:0-失败,1-成功

intGetDateFromDays(intiYear,intnDays,int*iMonth,int*iDay);

//检验年、月、日的合法性,参数:年,月,日,返回值:0-失败,1-成功

intDateCheck(intiYear,intiMonth,intiDay);

//获取农历新年的公历年内序数,参数:农历年,返回值:农历新年的公历年内序数

intLunarGetNewYearOrdinal(intiLunarYear);

//获取农历月的天数,参数:农历年,农历月,是否为闰月,返回值:该农历月的天数,为0代表参数无效

intLunarGetDaysofMonth(intiLunarYear,intiLunarMonth,intIsLeapMonth);

//展开大小月数据表(某一年的),参数:农历年,从上一拿空年十一月开始到当前年份(闰)十二月的每月天数,返回值:0-失败,1-成功

intLunarExpandDX(intiLunarYear,intiDayOfMonth[15]);

//获取农历某一年的闰月情况,参数:农历年,返回值,该年的闰月月份,0表示无闰月

intLunarGetLeapMonth(intiLunarYear);

//公历转农历,参数:公历年、月、日,农历年、月、日,是否为闰月,返回值:0-失败,1-成功

intGongli2Nongli(intiYear,intiMonth,intiDay,int*iLunarYear,int*iLunarMonth,int*iLunarDay,int*iIsLeapMonth);

//农历转公历,参数:家历年、月、日,是否为闰月,公历年、月、日,返回值:0-失败,1-成功

intNongli2Gongli(intiLunarYear,intiLunarMonth,intiLunarDay,intiIsLeapMonth,int*iYear,int*iMonth,int*iDay);

//得到指定年份的节气信息,首个是小寒

intGetJieQi(intiYear,intuMonth,unsignedintuJieQi[2]);

//计算星期

unsignedintGetDayOfWeek(intiYear,intuMonth,intuDay);

源代码请看吧。提取码:ooj7

C51单片机的万年历程序设计

//C51写的公历转农历和星期

#define uint unsigned int

#include <intrins.h>

/*

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

格式第一字节BIT7-4 位表示闰月指告乎月份,值为0 为无闰月,BIT3-0 对应农历第1-4 月的大小

第二字节BIT7-0 对应农历第5-12 月大小,第三字节BIT7 表示农历第13 个月大小

月份对应的位为1 表示本农历月大(30 天),为0 表示小(29 天)

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

*/

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

0x04,0x97,0x4A, //1929

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, //1938

0x0C,0x95,0x53, //1939

0x0d,0x4A,0x48, //1940

0x6d,0xA5,0x3B, //1941

0x0B,0x55,0x4f, //1942

0x05,0x6A,0x45, //1943

0x4A,0xAd,0xB9, //1944

0x02,0x5d,0x4d, //1945

0x09,0x2d,0x42, //1946

0x2C,0x95,0xB6, //1947

0x0A,0x95,0x4A, //1948

0x7B,0x4A,0xBd, //1949

0x06,0xCA,0x51, //1950

0x0B,0x55,0x46, //1951

0x55,0x5A,0xBB, //1952

0x04,0xdA,0x4e, //1953

0x0A,0x5B,0x43, //1954

0x35,0x2B,0xB8, //1955

0x05,0x2B,0x4C, //1956

0x8A,0x95,0x3f, //1957

0x0e,0x95,0x52, //1958

0x06,0xAA,0x48, //1959

0x7A,0xd5,0x3C, //1960

0x0A,0xB5,0x4f, //1961

0x04,0xB6,0x45, //1962

0x4A,0x57,0x39, //1963

0x0A,0x57,0x4d, //1964

0x05,0x26,0x42, //1965

0x3e,0x93,0x35, //1966

0x0d,0x95,0x49, //1967

0x75,0xAA,0xBe, //1968

0x05,0x6A,0x51, //1969

0x09,0x6d,0x46, //1970

0x54,0xAe,0xBB, //1971

0x04,0xAd,0x4f, //1972

0x0A,0x4d,0x43, //1973

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, //1982

0x0A,0x4B,0x4d, //1983

0xAB,0x25,0xC2, //1984

0x06,0xA5,0x54, //1985

0x06,0xd4,0x49, //1986

0x6A,0xdA,0x3d, //1987

0x0A,0xB6,0x51, //1988

0x09,0x37,0x46, //1989

0x54,0x97,0xBB, //1990

0x04,0x97,0x4f, //1991

0x06,0x4B,0x44, //1992

0x36,0xA5,0x37, //1993

0x0e,0xA5,0x4A, //1994

0x86,0xB2,0xBf, //1995

0x05,0xAC,0x53, //1996

0x0A,0xB6,0x47, //1997

0x59,0x36,0xBC, //1998

0x09,0x2e,0x50, //1999 294

0x0C,0x96,0x45, //2000 297

0x4d,0x4A,0xB8, //2001

0x0d,0x4A,0x4C, //2002

0x0d,0xA5,0x41, //2003

0x25,0xAA,0xB6, //2004

0x05,0x6A,0x49, //2023

0x7A,0xAd,0xBd, //2023

0x02,0x5d,0x52, //2023

0x09,0x2d,0x47, //2023

0x5C,0x95,0xBA, //2023

0x0A,0x95,0x4e, //2023

0x0B,0x4A,0x43, //2023

0x4B,0x55,0x37, //2023

0x0A,0xd5,0x4A, //2023

0x95,0x5A,0xBf, //2023

0x04,0xBA,0x53, //2023

0x0A,0x5B,0x48, //2023

0x65,0x2B,0xBC, //2023

0x05,0x2B,0x50, //2023

0x0A,0x93,0x45, //2023

0x47,0x4A,0xB9, //2023

0x06,0xAA,0x4C, //2023

0x0A,0xd5,0x41, //2023

0x24,0xdA,0xB6, //2023

0x04,0xB6,0x4A, //2024

0x69,0x57,0x3d, //2025

0x0A,0x4e,0x51, //2026

0x0d,0x26,0x46, //2027

0x5e,0x93,0x3A, //2028

0x0d,0x53,0x4d, //2029

0x05,0xAA,0x43, //2030

0x36,0xB5,0x37, //2031

0x09,0x6d,0x4B, //2032

0xB4,0xAe,0xBf, //2033

0x04,0xAd,0x53, //2034

0x0A,0x4d,0x48, //2035

0x6d,0x25,0xBC, //2036

0x0d,0x25,0x4f, //2037

0x0d,0x52,0x44, //2038

0x5d,0xAA,0x38, //2039

0x0B,0x5A,0x4C, //2040

0x05,0x6d,0x41, //2041

0x24,0xAd,0xB6, //2042

0x04,0x9B,0x4A, //2043

0x7A,0x4B,0xBe, //2044

0x0A,0x4B,0x51, //2045

0x0A,0xA5,0x46, //2046

0x5B,0x52,0xBA, //2047

0x06,0xd2,0x4e, //2048

0x0A,0xdA,0x42, //2049

0x35,0x5B,0x37, //2050

0x09,0x37,0x4B, //2051

0x84,0x97,0xC1, //2052

0x04,0x97,0x53, //2053

0x06,0x4B,0x48, //2054

0x66,0xA5,0x3C, //2055

0x0e,0xA5,0x4f, //2056

0x06,0xB2,0x44, //2057

0x4A,0xB6,0x38, //2058

0x0A,0xAe,0x4C, //2059

0x09,0x2e,0x42, //2060

0x3C,0x97,0x35, //2061

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

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

0x3A,0x93,0xB6, //2080

0x06,0x93,0x49, //2081

0x77,0x29,0xBd, //2082

0x06,0xAA,0x51, //2083

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 uint day_code2[3]={0x222,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;

/*子函数,用于读取数据表中农历月的大月或小月,如果该月为大返回1,为小返回0*/

{

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数据

*/

{ //c=0 为21世纪,c=1 为19世纪 输入输出数据均为BCD数据

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=0x63;c=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数据

*/

/*

算法:日期+年份+所过闰年数+月较正数之和除7 的余数就是星期但如果是在

闰年又不到3 月份上述之和要减一天再除7

星期数为0

*/

{//c=0 为21世纪,c=1 为19世纪 输入输出数据均为BCD数据

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;

}

//test

void main()

{

c_sun=1;

year_sun=0x2;

month_sun=0x11;

day_sun=0x3;

Conver_week(c_sun,year_sun,month_sun,day_sun);

Conversion(c_sun,year_sun,month_sun,day_sun);

while(1);

}

以上内容是小编精心整理的关于农历数据库 农历数据表的精彩内容,好的文章需要你的分享,喜欢农历数据库 农历数据表这篇精彩文章的,请您经常光顾吧!

上一篇:今年农历叫什么年号 今年农历叫什么年怎么读

下一篇:更多运程

本文标题:农历数据库 农历数据表

本文链接:http://m.shengxiao88.com/article/165653.html

使劲推荐

农历数据库 农历数据表
农历数据库 农历数据表

一篇好的文章需要好好的打磨,你现在浏览的文章是一篇关于农历数据库 农历数据表的文章,...

今年农历叫什么年号 今年农历叫什么年怎么读
今年农历叫什么年号 今年农历叫什么年怎么读

一篇好的文章需要好好的打磨,你现在浏览的文章是一篇关于今年农历叫什么年号 今年农历...

生肖是按农历还是阳历 宝宝生肖是按农历还是阳历
生肖是按农历还是阳历 宝宝生肖是按农历还是阳历

一篇好的文章需要好好的打磨,你现在浏览的文章是一篇关于生肖是按农历还是阳历 宝宝生...

2023年的农历阳历表 2023农历什么年份
2023年的农历阳历表 2023农历什么年份

一篇好的文章需要好好的打磨,你现在浏览的文章是一篇关于2023年的农历阳历表 2023农历...

2023年农历8月20日 2023年农历8月28日
2023年农历8月20日 2023年农历8月28日

一篇好的文章需要好好的打磨,你现在浏览的文章是一篇关于2023年农历8月20日 2023年农历...

发表评论

相关推荐

今年农历啥年 今年农历啥年份
今年农历啥年 今年农历啥年份

一篇好的文章需要好好的打磨,你现在浏览的文章是一篇关于今年农历啥年 今年农历啥年份...

生肖看农历还是阳历 生肖看农历还是阳历算
生肖看农历还是阳历 生肖看农历还是阳历算

一篇好的文章需要好好的打磨,你现在浏览的文章是一篇关于生肖看农历还是阳历 生肖看农...

农历3月初7是什么星座 1973年农历3月初7是什么星座
农历3月初7是什么星座 1973年农历3月初7是什么星座

一篇好的文章需要好好的打磨,你现在浏览的文章是一篇关于农历3月初7是什么星座 1973年...

农历三月是什么属相月 农历三月十九是什么命
农历三月是什么属相月 农历三月十九是什么命

一篇好的文章需要好好的打磨,你现在浏览的文章是一篇关于农历三月是什么属相月 农历三...

10月24农历是几号 10月24农历生日是什么时候
10月24农历是几号 10月24农历生日是什么时候

一篇好的文章需要好好的打磨,你现在浏览的文章是一篇关于10月24农历是几号 10月24农历...

精选运程标签