CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Delphi >  语言基础/算法/系统设计

求万年历源码!最好有带阴历的。

楼主vuen(阿土)2004-09-02 22:53:45 在 Delphi / 语言基础/算法/系统设计 提问

求万年历源码!最好有带阴历的。  
  嘻嘻…… 问题点数:100、回复次数:12Top

1 楼vuen(阿土)回复于 2004-09-02 22:55:10 得分 0

我靠,信誉值什么时候跌倒99了!Top

2 楼hsmserver(撒哈拉之雨的悲伤)回复于 2004-09-02 23:15:28 得分 10

http://www.skycn.com/soft/4740.html  
  Top

3 楼jb99334(↑飞刀客↑)回复于 2004-09-02 23:17:15 得分 20

http://www.delphibbs.com/keylife/iblog_show.asp?xid=4354  
  接分Top

4 楼ly_liuyang(Liu Yang LYSoft http://lysoft.7u7.net)回复于 2004-09-02 23:38:04 得分 10

好像在DelphiBox.com有的Top

5 楼BigAngell(学而不思则罔 思而不学则殆)回复于 2004-09-02 23:47:24 得分 0

看看Top

6 楼jiang5460(巴山夜雨)回复于 2004-09-03 00:21:44 得分 40

用Delphi处理公历到农历的转换      
  const  
      START_YEAR=1901;  
      END_YEAR=2050;  
   
  //返回iYear年iMonth月的天数   1年1月   ---   65535年12月  
  function   MonthDays(iYear,iMonth:Word):Word;  
   
  //返回阴历iLunarYer年阴历iLunarMonth月的天数,如果iLunarMonth为闰月,  
  //高字为第二个iLunarMonth月的天数,否则高字为0     1901年1月---2050年12月  
  function   LunarMonthDays(iLunarYear,iLunarMonth:Word):Longword;  
   
  //返回阴历iLunarYear年的总天数   1901年1月---2050年12月  
  function   LunarYearDays(iLunarYear:Word):Word;  
   
  //返回阴历iLunarYear年的闰月月份,如没有返回0     1901年1月---2050年12月  
  function   GetLeapMonth(iLunarYear:Word):Word;  
   
  //把iYear年格式化成天干记年法表示的字符串  
  procedure   FormatLunarYear(iYear:Word;var   pBuffer:string);overload;  
  function   FormatLunarYear(iYear:Word):string;overload;  
   
  //把iMonth格式化成中文字符串  
  procedure   FormatMonth(iMonth:Word;var   pBuffer:string;bLunar:Boolean=True);overload;  
  function   FormatMonth(iMonth:Word;bLunar:Boolean=True):string;overload;  
   
  //把iDay格式化成中文字符串  
  procedure   FormatLunarDay(iDay:Word;var   pBuffer:string);overload;  
  function   FormatLunarDay(iDay:Word):string;overload;  
   
  //计算公历两个日期间相差的天数     1年1月1日   ---   65535年12月31日  
  function   CalcDateDiff  
  (iEndYear,iEndMonth,iEndDay:Word;iStartYear:Word=START_YEAR;iStartMonth:Word=  
  1;iStartDay:Word=1):Longword;overload;  
  function   CalcDateDiff(EndDate,StartDate:TDateTime):Longword;overload;  
   
  //计算公历iYear年iMonth月iDay日对应的阴历日期,返回对应的阴历节气   0-24  
  //1901年1月1日---2050年12月31日  
   
  function   GetLunarHolDay(InDate:TDateTime):string;overload;  
  function   GetLunarHolDay(iYear,iMonth,iDay:Word):string;overload;  
   
  //private   function--------------------------------------  
   
  //计算从1901年1月1日过iSpanDays天后的阴历日期  
  procedure   l_CalcLunarDate(var   iYear,iMonth,iDay:Word;iSpanDays:Longword);  
   
  //计算公历iYear年iMonth月iDay日对应的节气   0-24,0表不是节气  
  function   l_GetLunarHolDay(iYear,iMonth,iDay:Word):Word;  
   
  implementation  
   
  var  
  //数组gLunarDay存入阴历1901年到2100年每年中的月天数信息,  
  //阴历每月只能是29或30天,一年用12(或13)个二进制位表示,对应位为1表30天,否则为29天  
      gLunarMonthDay:array[0..149]   of   Word=(  
          //测试数据只有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  
          $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]   of   Byte=(  
          $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  
          $02,   $07,   $00,   $50,   $03);     //2050  
   
   
   
     
   
     
  Top

7 楼jiang5460(巴山夜雨)回复于 2004-09-03 00:22:47 得分 0

//数组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]   of   Byte=(  
          $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  
          $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  
          $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  
  Top

8 楼jiang5460(巴山夜雨)回复于 2004-09-03 00:24:33 得分 0

$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  
          $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  
          $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  
         
  Top

9 楼vuen(阿土)回复于 2004-09-03 09:35:37 得分 0

谢谢楼上几位,如果有已经做好的带源码的VCL控件就更好了。Top

10 楼wanglei_qiu(王磊)回复于 2004-09-03 09:40:48 得分 0

顶!Top

11 楼miky(miky)回复于 2004-09-04 18:37:34 得分 20

http://www.2ccc.com/article.asp?articleid=982Top

12 楼jiang5460(巴山夜雨)回复于 2004-09-04 22:08:01 得分 0

补上面的,  
  function   FormatLunarYear(iYear:Word):string;  
  var  
      pBuffer:string;  
  begin  
      FormatLunarYear(iYear,pBuffer);  
      Result:=pBuffer;  
  end;  
   
  procedure   FormatMonth(iMonth:Word;var   pBuffer:string;bLunar:Boolean);  
  var  
      szText:string;  
  begin  
      if   (not   bLunar)   and   (iMonth=1)   then  
      begin  
          pBuffer:=’     一月’;  
          Exit;  
      end;  
      szText:=’正二三四五六七八九十’;  
      if   iMonth<=10   then  
      begin  
          pBuffer:=’     ’;  
          pBuffer:=pBuffer+Copy(szText,(iMonth-1)*2+1,2);  
          pBuffer:=pBuffer+’月’;  
          Exit;  
      end;  
      if   iMonth=11   then  
          pBuffer:=’十一’  
      else  
          pBuffer:=’十二’;  
      pBuffer:=pBuffer+’月’;  
  end;  
   
  function   FormatMonth(iMonth:Word;bLunar:Boolean):string;  
  var  
      pBuffer:string;  
  begin  
      FormatMonth(iMonth,pBuffer,bLunar);  
      Result:=pBuffer;  
  end;  
   
  procedure   FormatLunarDay(iDay:Word;var   pBuffer:string);  
  var  
      szText1,szText2:string;  
  begin  
      szText1:=’初十廿三’;  
      szText2:=’一二三四五六七八九十’;  
      if   (iDay<>20)   and   (iDay<>30)   then  
      begin  
          pBuffer:=Copy(szText1,((iDay-1)   div   10)*2+1,2);  
          pBuffer:=pBuffer+Copy(szText2,((iDay-1)   mod   10)*2+1,2);  
      end  
      else  
      begin  
          pBuffer:=Copy(szText1,(iDay   div   10)*2+1,2);  
          pBuffer:=pBuffer+’十’;  
      end;  
  end;  
   
  function   FormatLunarDay(iDay:Word):string;  
  var  
      pBuffer:string;  
  begin  
      FormatLunarDay(iDay,pBuffer);  
      Result:=pBuffer;  
  end;  
   
  function   CalcDateDiff  
  (iEndYear,iEndMonth,iEndDay:Word;iStartYear:Word;iStartMonth:Word;iStartDay:Word):Lon  
  gword;  
  begin  
      Result:=Trunc(EncodeDate(iEndYear,iEndMonth,iEndDay)-EncodeDate  
  (iStartYear,iStartMonth,iStartDay));  
  end;  
   
  function   CalcDateDiff(EndDate,StartDate:TDateTime):Longword;  
  begin  
      Result:=Trunc(EndDate-StartDate);  
  end;  
   
  procedure   l_CalcLunarDate(var   iYear,iMonth,iDay:Word;iSpanDays:Longword);  
  var  
      tmp:Longword;  
  begin  
      //阳历1901年2月19日为阴历1901年正月初一  
      //阳历1901年1月1日到2月19日共有49天  
      if   iSpanDays<49   then  
      begin  
          iYear:=START_YEAR-1;  
          if   iSpanDays<19   then  
          begin  
              iMonth:=11;  
              iDay:=11+Word(iSpanDays);  
          end  
          else  
          begin  
              iMonth:=12;  
              iDay:=Word(iSpanDays)-18;  
          end;  
          Exit;  
      end;  
      //下面从阴历1901年正月初一算起  
      iSpanDays:=iSpanDays-49;  
      iYear:=START_YEAR;  
      iMonth:=1;  
      iDay:=1;  
      //计算年  
      tmp:=LunarYearDays(iYear);  
      while   iSpanDays>=tmp   do  
      begin  
          iSpanDays:=iSpanDays-tmp;  
          Inc(iYear);  
          tmp:=LunarYearDays(iYear);  
      end;  
      //计算月  
      tmp:=LoWord(LunarMonthDays(iYear,iMonth));  
      while   iSpanDays>=tmp   do  
      begin  
          iSpanDays:=iSpanDays-tmp;  
          if   iMonth=GetLeapMonth(iYear)   then  
          begin  
              tmp:=HiWord(LunarMonthDays(iYear,iMonth));  
              if   iSpanDays<tmp   then   Break;  
              iSpanDays:=iSpanDays-tmp;  
          end;  
          Inc(iMonth);  
          tmp:=LoWord(LunarMonthDays(iYear,iMonth));  
      end;  
      //计算日  
      iDay:=iDay+Word(iSpanDays);  
  end;  
   
  function   l_GetLunarHolDay(iYear,iMonth,iDay:Word):Word;  
  var  
      Flag:Byte;  
      Day:Word;  
  begin  
      Flag:=gLunarHolDay[(iYear-START_YEAR)*12+iMonth-1];  
      if   iDay<15   then  
          Day:=15-((Flag   shr   4)   and   $0f)  
      else  
          Day:=(Flag   and   $0f)+15;  
      if   iDay=Day   then  
          if   iDay>15   then  
              Result:=(iMonth-1)*2+2  
          else  
              Result:=(iMonth-1)*2+1  
      else  
          Result:=   0;  
  end;  
   
  function   GetLunarHolDay(InDate:TDateTime):string;  
  var  
      i,iYear,iMonth,iDay:Word;  
  begin  
      DecodeDate(InDate,iYear,iMonth,iDay);  
      i:=l_GetLunarHolDay(iYear,iMonth,iDay);  
      case   i   of  
          1:Result:=’小   寒’;  
          2:Result:=’大   寒’;  
          3:Result:=’立   春’;  
          4:Result:=’雨   水’;  
          5:Result:=’惊   蛰’;  
          6:Result:=’春   分’;  
          7:Result:=’清   明’;  
          8:Result:=’谷   雨’;  
          9:Result:=’立   夏’;  
          10:Result:=’小   满’;  
          11:Result:=’芒   种’;  
          12:Result:=’夏   至’;  
          13:Result:=’小   暑’;  
          14:Result:=’大   暑’;  
          15:Result:=’立   秋’;  
          16:Result:=’处   暑’;  
          17:Result:=’白   露’;  
          18:Result:=’秋   分’;  
          19:Result:=’寒   露’;  
          20:Result:=’霜   降’;  
          21:Result:=’立   冬’;  
          22:Result:=’小   雪’;  
          23:Result:=’大   雪’;  
          24:Result:=’冬   至’;  
      else  
          l_CalcLunarDate(iYear,iMonth,iDay,CalcDateDiff(InDate,EncodeDate  
  (START_YEAR,1,1)));  
          Result   :=   trim(FormatMonth(iMonth)   +   FormatLunarDay(iDay));  
      end;  
  end;  
   
  function   GetLunarHolDay(iYear,iMonth,iDay:Word):string;  
  begin  
      Result:=GetLunarHolDay(EncodeDate(iYear,iMonth,iDay));  
  end;  
  end.Top

相关问题

  • 谁有 万年历源码?
  • 能否提供万年历的控件或源码,最好支持中国老皇历的显示(包括皇历数据库)???
  • 有哪位大虾能提供万年历的算法,也就是阳历转阴历!
  • 请问各位哥哥姐姐,如何一个阴历跟阳历的万年历。在线等。
  • 万年历!!
  • 万年历的实现
  • 万年历 + 节日提醒
  • 怎样作万年历?
  • 高分求教中国阴历的算法的具体源码——50分!
  • 请教万年历的核心算法?

关键词

  • word
  • imonth
  • iyear
  • 阴历
  • ispandays
  • blunar
  • formatmonth
  • 1901年1月
  • ilunaryear
  • pbuffer

得分解答快速导航

  • 帖主:vuen
  • hsmserver
  • jb99334
  • ly_liuyang
  • jiang5460
  • miky

相关链接

  • Delphi类图书
  • Delphi类源码下载
  • Delphi控件下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo