Lunar.Pas :
这是一个国历与农历互相转的Unit.
其中年份皆用民国年份, 请自行转换 (西元年-1911 = 民国年).
*国农历对映表之说明 : *
* 前二数字 = 闰月月份, 如果为 13 则没有闰月 *
* 第叁至第六数字 = 12 个月之大小月之2进位码->10进位 *
* 例如: *
* 101010101010 = 2730 *
* 1 : 代表大月(30天) 0 : 代表小月(29天) ==> 1月大2月小3月大..... *
* 第七位数字为闰月天数 *
* 0 : 没有闰月之天数 *
* 1 : 闰月为小月(29天) *
* 2 : 闰月为大月(30天) *
* 最後2位数字代表阳历之1月1日与阴历之1月1日相差天数 *
*******************************************************
这对映表只有民国一年至民国一百年, 如不敷您的使用请按照上述之方式自行增加. :)
这个程式没有判断您所输入之年,月,日是否正确, 请自行判断. :(
如果转换出来之农历的月份是闰月则传给您的值是***负数***
如果农历要转换国历如果是闰月请输入***负数***
此版本为FreeWare Version : 0.1
您可以自行修改, 但最好可以将修改过之程式Mail一份给我.
如果您要用於商业用途, 请mail给我告知您的用途及原因.
作者 : 彭宏杰
E-Mail : [email protected]
//国历转农历(民国年, 月, 日, var 农历年, 农历月, 农历日)
procedure Solar2Lunar(SYear, SMonth, SDay : Integer; Var LYear, LMonth, LDay : Integer);
//农历转国历(农历年, 农历月, 农历日, var 民国年, 月, 日)
procedure Lunar2Solar(LYear, LMonth, LDay : Integer; Var SYear, SMonth, SDay : Integer);
//输入农历年份换算六十甲子名称
function YearName(LYear : integer) : string;
//得知农历之月份天数
function DaysPerLunarMonth(LYear, LMonth : Integer) : Integer;
cal.Pas :
国历与农历合而为一之月历. (不用Delpi 3.0 中文应用组件)
(范围 : 民国一年至民国一百年)
新增 Property :
LYear : 农历之民国年份
LMonth : 农历之月份(负数为闰月)
LDay : 农历之天数
LYearName : 农历之六十甲子名称(readonly)
作者: 彭宏杰
E-Mail : [email protected]
此版本为 FreeWare, 可自由散播, 但尽量保持其完整性, 如有Bug请E-Mail给我,
如您要更改也请E-Mail一份给我. OK! :)