公历农历转换.docx

上传人:b****5 文档编号:8531033 上传时间:2023-01-31 格式:DOCX 页数:18 大小:19.36KB
下载 相关 举报
公历农历转换.docx_第1页
第1页 / 共18页
公历农历转换.docx_第2页
第2页 / 共18页
公历农历转换.docx_第3页
第3页 / 共18页
公历农历转换.docx_第4页
第4页 / 共18页
公历农历转换.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

公历农历转换.docx

《公历农历转换.docx》由会员分享,可在线阅读,更多相关《公历农历转换.docx(18页珍藏版)》请在冰豆网上搜索。

公历农历转换.docx

公历农历转换

const

START_YEAR=1901;

END_YEAR=2050;

//返回iYear年iMonth月的天数1年1月---65535年12月

functionMonthDays(iYear,iMonth:

Word):

Word;

//返回阴历iLunarYer年阴历iLunarMonth月的天数,如果iLunarMonth为闰月,

//高字为第二个iLunarMonth月的天数,否则高字为01901年1月---2050年12月

functionLunarMonthDays(iLunarYear,iLunarMonth:

Word):

Longword;

//返回阴历iLunarYear年的总天数1901年1月---2050年12月

functionLunarYearDays(iLunarYear:

Word):

Word;

//返回阴历iLunarYear年的闰月月份,如没有返回01901年1月---2050年12月

functionGetLeapMonth(iLunarYear:

Word):

Word;

//把iYear年格式化成天干记年法表示的字符串

procedureFormatLunarYear(iYear:

Word;varpBuffer:

string);overload;

functionFormatLunarYear(iYear:

Word):

string;overload;

//把iMonth格式化成中文字符串

procedureFormatMonth(iMonth:

Word;varpBuffer:

string;bLunar:

Boolean=True);overload;

functionFormatMonth(iMonth:

Word;bLunar:

Boolean=True):

string;overload;

//把iDay格式化成中文字符串

procedureFormatLunarDay(iDay:

Word;varpBuffer:

string);overload;字串4

functionFormatLunarDay(iDay:

Word):

string;overload;

//计算公历两个日期间相差的天数1年1月1日---65535年12月31日

functionCalcDateDiff(iEndYear,iEndMonth,iEndDay:

Word;iStartYear:

Word=START_YEAR;iStartMonth:

Word=1;iStartDay:

Word=1):

Longword;overload;

functionCalcDateDiff(EndDate,StartDate:

TDateTime):

Longword;overload;

//计算公历iYear年iMonth月iDay日对应的阴历日期,返回对应的阴历节气0-24

//1901年1月1日---2050年12月31日

functionGetLunarHolDay(InDate:

TDateTime):

string;overload;

functionGetLunarHolDay(iYear,iMonth,iDay:

Word):

string;overload;

//privatefunction--------------------------------------

//计算从1901年1月1日过iSpanDays天后的阴历日期

procedurel_CalcLunarDate(variYear,iMonth,iDay:

Word;iSpanDays:

Longword);

//计算公历iYear年iMonth月iDay日对应的节气0-24,0表不是节气

functionl_GetLunarHolDay(iYear,iMonth,iDay:

Word):

Word;

implementation

var

//数组gLunarDay存入阴历1901年到2100年每年中的月天数信息,

//阴历每月只能是29或30天,一年用12(或13)个二进制位表示,对应位为1表30天,否则为29天

字串4

gLunarMonthDay:

array[0..149]ofWord=(

//测试数据只有1901.1.1--2050.12.31

$4ae0,$a570,$5268,$d260,$d950,$6aa8,$56a0,$9ad0,$4ae8,$4ae0,//1910

$a4d8,$a4d0,$d250,$d548,$b550,$56a0,$96d0,$95b0,$49b8,$49b0,//1920

$a4b0,$b258,$6a50,$6d40,$ada8,$2b60,$9570,$4978,$4970,$64b0,//1930

$d4a0,$ea50,$6d48,$5ad0,$2b60,$9370,$92e0,$c968,$c950,$d4a0,//1940

$da50,$b550,$56a0,$aad8,$25d0,$92d0,$c958,$a950,$b4a8,$6ca0,//1950

$b550,$55a8,$4da0,$a5b0,$52b8,$52b0,$a950,$e950,$6aa0,$ad50,//1960

$ab50,$4b60,$a570,$a570,$5260,$e930,$d950,$5aa8,$56a0,$96d0,//1970

$4ae8,$4ad0,$a4d0,$d268,$d250,$d528,$b540,$b6a0,$96d0,$95b0,//1980

$49b0,$a4b8,$a4b0,$b258,$6a50,$6d40,$ada0,$ab60,$9370,$4978,//1990

$4970,$64b0,$6a50,$ea50,$6b28,$5ac0,$ab60,$9368,$92e0,$c960,//2000

$d4a8,$d4a0,$da50,$5aa8,$56a0,$aad8,$25d0,$92d0,$c958,$a950,//2010字串6

$b4a0,$b550,$b550,$55a8,$4ba0,$a5b0,$52b8,$52b0,$a930,$74a8,//2020

$6aa0,$ad50,$4da8,$4b60,$9570,$a4e0,$d260,$e930,$d530,$5aa0,//2030

$6b50,$96d0,$4ae8,$4ad0,$a4d0,$d258,$d250,$d520,$daa0,$b5a0,//2040

$56d0,$4ad8,$49b0,$a4b8,$a4b0,$aa50,$b528,$6d20,$ada0,$55b0);//2050

//数组gLanarMonth存放阴历1901年到2050年闰月的月份,如没有则为0,每字节存两年

gLunarMonth:

array[0..74]ofByte=(

$00,$50,$04,$00,$20,//1910

$60,$05,$00,$20,$70,//1920

$05,$00,$40,$02,$06,//1930

$00,$50,$03,$07,$00,//1940

$60,$04,$00,$20,$70,//1950

$05,$00,$30,$80,$06,//1960

$00,$40,$03,$07,$00,//1970

$50,$04,$08,$00,$60,//1980

$04,$0a,$00,$60,$05,//1990

$00,$30,$80,$05,$00,//2000

$40,$02,$07,$00,$50,//2010

$04,$09,$00,$60,$04,//2020

$00,$20,$60,$05,$00,//2030

$30,$b0,$06,$00,$50,//2040

字串5

$02,$07,$00,$50,$03);//2050

//数组gLanarHoliDay存放每年的二十四节气对应的阳历日期

//每年的二十四节气对应的阳历日期几乎固定,平均分布于十二个月中

//1月2月3月4月5月6月

//小寒大寒立春雨水惊蛰春分清明谷雨立夏小满芒种夏至

//7月8月9月10月11月12月

//小暑大暑立秋处暑白露秋分寒露霜降立冬小雪大雪冬至

{*********************************************************************************

节气无任何确定规律,所以只好存表,要节省空间,所以....

**********************************************************************************}

//数据格式说明:

//如1901年的节气为

//1月2月3月4月5月6月7月8月9月10月11月12月

//6,21,4,19,6,21,5,21,6,22,6,22,8,23,8,24,8,24,8,24,8,23,8,22

//9,6,11,4,9,6,10,6,9,7,9,7,7,8,7,9,7,9,7,9,7,8,7,15

//上面第一行数据为每月节气对应日期,15减去每月第一个节气,每月第二个节气减去15得第二行

//这样每月两个节气对应数据都小于16,每月用一个字节存放,高位存放第一个节气数据,低位存放

//第二个节气的数据,可得下表

gLunarHolDay:

array[0..1799]ofByte=(

$96,$B4,$96,$A6,$97,$97,$78,$79,$79,$69,$78,$77,//1901

$96,$A4,$96,$96,$97,$87,$79,$79,$79,$69,$78,$78,//1902

$96,$A5,$87,$96,$87,$87,$79,$69,$69,$69,$78,$78,//1903

$86,$A5,$96,$A5,$96,$97,$88,$78,$78,$79,$78,$87,//1904

$96,$B4,$96,$A6,$97,$97,$78,$79,$79,$69,$78,$77,//1905

$96,$A4,$96,$96,$97,$97,$79,$79,$79,$69,$78,$78,//1906

$96,$A5,$87,$96,$87,$87,$79,$69,$69,$69,$78,$78,//1907

$86,$A5,$96,$A5,$96,$97,$88,$78,$78,$69,$78,$87,//1908

$96,$B4,$96,$A6,$97,$97,$78,$79,$79,$69,$78,$77,//1909

$96,$A4,$96,$96,$97,$97,$79,$79,$79,$69,$78,$78,//1910

字串2

$96,$A5,$87,$96,$87,$87,$79,$69,$69,$69,$78,$78,//1911

$86,$A5,$96,$A5,$96,$97,$88,$78,$78,$69,$78,$87,//1912

$95,$B4,$96,$A6,$97,$97,$78,$79,$79,$69,$78,$77,//1913

$96,$B4,$96,$A6,$97,$97,$79,$79,$79,$69,$78,$78,//1914

$96,$A5,$97,$96,$97,$87,$79,$79,$69,$69,$78,$78,//1915

$96,$A5,$96,$A5,$96,$97,$88,$78,$78,$79,$77,$87,//1916

$95,$B4,$96,$A6,$96,$97,$78,$79,$78,$69,$78,$87,//1917

$96,$B4,$96,$A6,$97,$97,$79,$79,$79,$69,$78,$77,//1918

$96,$A5,$97,$96,$97,$87,$79,$79,$69,$69,$78,$78,//1919

$96,$A5,$96,$A5,$96,$97,$88,$78,$78,$79,$77,$87,//1920

$95,$B4,$96,$A5,$96,$97,$78,$79,$78,$69,$78,$87,//1921

$96,$B4,$96,$A6,$97,$97,$79,$79,$79,$69,$78,$77,//1922

$96,$A4,$96,$96,$97,$87,$79,$79,$69,$69,$78,$78,//1923

$96,$A5,$96,$A5,$96,$97,$88,$78,$78,$79,$77,$87,//1924

字串8

$95,$B4,$96,$A5,$96,$97,$78,$79,$78,$69,$78,$87,//1925

$96,$B4,$96,$A6,$97,$97,$78,$79,$79,$69,$78,$77,//1926

$96,$A4,$96,$96,$97,$87,$79,$79,$79,$69,$78,$78,//1927

$96,$A5,$96,$A5,$96,$96,$88,$78,$78,$78,$87,$87,//1928

$95,$B4,$96,$A5,$96,$97,$88,$78,$78,$79,$77,$87,//1929

$96,$B4,$96,$A6,$97,$97,$78,$79,$79,$69,$78,$77,//1930

$96,$A4,$96,$96,$97,$87,$79,$79,$79,$69,$78,$78,//1931

$96,$A5,$96,$A5,$96,$96,$88,$78,$78,$78,$87,$87,//1932

$95,$B4,$96,$A5,$96,$97,$88,$78,$78,$69,$78,$87,//1933

$96,$B4,$96,$A6,$97,$97,$78,$79,$79,$69,$78,$77,//1934

$96,$A4,$96,$96,$97,$97,$79,$79,$79,$69,$78,$78,//1935

$96,$A5,$96,$A5,$96,$96,$88,$78,$78,$78,$87,$87,//1936

$95,$B4,$96,$A5,$96,$97,$88,$78,$78,$69,$78,$87,//1937

$96,$B4,$96,$A6,$97,$97,$78,$79,$79,$69,$78,$77,//1938字串1

$96,$A4,$96,$96,$97,$97,$79,$79,$79,$69,$78,$78,//1939

$96,$A5,$96,$A5,$96,$96,$88,$78,$78,$78,$87,$87,//1940

$95,$B4,$96,$A5,$96,$97,$88,$78,$78,$69,$78,$87,//1941

$96,$B4,$96,$A6,$97,$97,$78,$79,$79,$69,$78,$77,//1942

$96,$A4,$96,$96,$97,$97,$79,$79,$79,$69,$78,$78,//1943

$96,$A5,$96,$A5,$A6,$96,$88,$78,$78,$78,$87,$87,//1944

$95,$B4,$96,$A5,$96,$97,$88,$78,$78,$79,$77,$87,//1945

$95,$B4,$96,$A6,$97,$97,$78,$79,$78,$69,$78,$77,//1946

$96,$B4,$96,$A6,$97,$97,$79,$79,$79,$69,$78,$78,//1947

$96,$A5,$A6,$A5,$A6,$96,$88,$88,$78,$78,$87,$87,//1948

$A5,$B4,$96,$A5,$96,$97,$88,$79,$78,$79,$77,$87,//1949

$95,$B4,$96,$A5,$96,$97,$78,$79,$78,$69,$78,$77,//1950

$96,$B4,$96,$A6,$97,$97,$79,$79,$79,$69,$78,$78,//1951

$96,$A5,$A6,$A5,$A6,$96,$88,$88,$78,$78,$87,$87,//1952字串1

$A5,$B4,$96,$A5,$96,$97,$88,$78,$78,$79,$77,$87,//1953

$95,$B4,$96,$A5,$96,$97,$78,$79,$78,$68,$78,$87,//1954

$96,$B4,$96,$A6,$97,$97,$78,$79,$79,$69,$78,$77,//1955

$96,$A5,$A5,$A5,$A6,$96,$88,$88,$78,$78,$87,$87,//1956

$A5,$B4,$96,$A5,$96,$97,$88,$78,$78,$79,$77,$87,//1957

$95,$B4,$96,$A5,$96,$97,$88,$78,$78,$69,$78,$87,//1958

$96,$B4,$96,$A6,$97,$97,$78,$79,$79,$69,$78,$77,//1959

$96,$A4,$A5,$A5,$A6,$96,$88,$88,$88,$78,$87,$87,//1960

$A5,$B4,$96,$A5,$96,$96,$88,$78,$78,$78,$87,$87,//1961

$96,$B4,$96,$A5,$96,$97,$88,$78,$78,$69,$78,$87,//1962

$96,$B4,$96,$A6,$97,$97,$78,$79,$79,$69,$78,$77,//1963

$96,$A4,$A5,$A5,$A6,$96,$88,$88,$88,$78,$87,$87,//1964

$A5,$B4,$96,$A5,$96,$96,$88,$78,$78,$78,$87,$87,//1965

$95,$B4,$96,$A5,$96,$97,$88,$78,$78,$69,$78,$87,//1966

$96,$B4,$96,$A6,$97,$97,$78,$79,$79,$69,$78,$77,//1967

$96,$A4,$A5,$A5,$A6,$A6,$88,$88,$88,$78,$87,$87,//1968

$A5,$B4,$96,$A5,$96,$96,$88,$78,$78,$78,$87,$87,//1969

$95,$B4,$96,$A5,$96,$97,$88,$78,$78,$69,$78,$87,//1970

$96,$B4,$96,$A6,$97,$97,$78,$79,$79,$69,$78,$77,//1971

$96,$A4,$A5,$A5,$A6,$A6,$88,$88,$88,$78,$87,$87,//1972

$A5,$B5,$96,$A5,$A6,$96,$88,$78,$78,$78,$87,$87,//1973

$95,$B4,$96,$A5,$96,$97,$88,$78,$78,$69,$78,$87,//1974

$96,$B4,$96,$A6,$97,$97,$78,$79,$78,$69,$78,$77,//1975

$96,$A4,$A5,$B5,$A6,$A6,$88,$89,$88,$78,$87,$87,//1976

$A5,$B4,$96,$A5,$96,$96,$88,$88,$78,$78,$87,$87,//1977字串5

$95,$B4,$96,$A5,$96,$97,$88,$78,$78,$79,$78,$87,//1978

$96,$B4,$96,$A6,$96,$97,$78,$79,$78,$69,$78,$77,//1979

$96,$A4,$A5,$B5,$A6,$A6,$88,$88,$88,$78,$87,$87,//1980

$A5,$B4,$96,$A5,$A6,$96,$88,$88,$78,$78,$77,$87,//1981

$95,$B4,$96,$A5,$96,$97,$88,$78,$78,$79,$77,$87,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 外语学习 > 法语学习

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1