hur.cn - 华软网

 热门搜索

农历算法,有兴趣就改成PB版本的

  作者:未知    来源:网络    更新时间:2017/9/29
C#.net农历
作者:
 

  using System; 
   
  namespace CNCalendar 
  { 
  public class CNDate 
  { 
  private const ushort START_YEAR = 1901; 
  private const ushort END_YEAR = 2050; 
  private string[] ConstellationName = 
  { 
  "白羊座", "金牛座", "双子座", 
  "巨蟹座", "狮子座", "处女座", 
  "天秤座", "天蝎座", "射手座", 
  "摩羯座", "水瓶座", "双鱼座"}; 
  private string[] LunarHolDayName = 
  { 
  "小寒", "大寒", "立春", "雨水", 
  "惊蛰", "春分", "清明", "谷雨", 
  "立夏", "小满", "芒种", "夏至", 
  "小暑", "大暑", "立秋", "处暑", 
  "白露", "秋分", "寒露", "霜降", 
  "立冬", "小雪", "大雪", "冬至"}; 
   
  //数组gLunarDay存入阴历1901年到2100年每年中的月天数信息, 
  //阴历每月只能是29或30天,一年用12(或13)个二进制位表示,对应位为1表30天,否则为29天 
  private int[] gLunarMonthDay = { 
  //测试数据只有1901.1.1 --2050.12.31 
  0x4ae0, 0xa570, 0x5268, 0xd260, 0xd950, 0x6aa8, 0x56a0, 0x9ad0, 0x4ae8, 0x4ae0, //1910 
  0xa4d8, 0xa4d0, 0xd250, 0xd548, 0xb550, 0x56a0, 0x96d0, 0x95b0, 0x49b8, 0x49b0, //1920 
  0xa4b0, 0xb258, 0x6a50, 0x6d40, 0xada8, 0x2b60, 0x9570, 0x4978, 0x4970, 0x64b0, //1930 
  0xd4a0, 0xea50, 0x6d48, 0x5ad0, 0x2b60, 0x9370, 0x92e0, 0xc968, 0xc950, 0xd4a0, //1940 
  0xda50, 0xb550, 0x56a0, 0xaad8, 0x25d0, 0x92d0, 0xc958, 0xa950, 0xb4a8, 0x6ca0, //1950 
  0xb550, 0x55a8, 0x4da0, 0xa5b0, 0x52b8, 0x52b0, 0xa950, 0xe950, 0x6aa0, 0xad50, //1960 
  0xab50, 0x4b60, 0xa570, 0xa570, 0x5260, 0xe930, 0xd950, 0x5aa8, 0x56a0, 0x96d0, //1970 
  0x4ae8, 0x4ad0, 0xa4d0, 0xd268, 0xd250, 0xd528, 0xb540, 0xb6a0, 0x96d0, 0x95b0, //1980 
  0x49b0, 0xa4b8, 0xa4b0, 0xb258, 0x6a50, 0x6d40, 0xada0, 0xab60, 0x9370, 0x4978, //1990 
  0x4970, 0x64b0, 0x6a50, 0xea50, 0x6b28, 0x5ac0, 0xab60, 0x9368, 0x92e0, 0xc960, //2000 
  0xd4a8, 0xd4a0, 0xda50, 0x5aa8, 0x56a0, 0xaad8, 0x25d0, 0x92d0, 0xc958, 0xa950, //2010 
  0xb4a0, 0xb550, 0xb550, 0x55a8, 0x4ba0, 0xa5b0, 0x52b8, 0x52b0, 0xa930, 0x74a8, //2020 
  0x6aa0, 0xad50, 0x4da8, 0x4b60, 0x9570, 0xa4e0, 0xd260, 0xe930, 0xd530, 0x5aa0, //2030 
  0x6b50, 0x96d0, 0x4ae8, 0x4ad0, 0xa4d0, 0xd258, 0xd250, 0xd520, 0xdaa0, 0xb5a0, //2040 
  0x56d0, 0x4ad8, 0x49b0, 0xa4b8, 0xa4b0, 0xaa50, 0xb528, 0x6d20, 0xada0, 0x55b0}; //2050 
   
  //数组gLanarMonth存放阴历1901年到2050年闰月的月份,如没有则为0,每字节存两年 
  byte[] gLunarMonth={ 
  0x00, 0x50, 0x04, 0x00, 0x20, //1910 
  0x60, 0x05, 0x00, 0x20, 0x70, //1920 
  0x05, 0x00, 0x40, 0x02, 0x06, //1930 
  0x00, 0x50, 0x03, 0x07, 0x00, //1940 
  0x60, 0x04, 0x00, 0x20, 0x70, //1950 
  0x05, 0x00, 0x30, 0x80, 0x06, //1960 
  0x00, 0x40, 0x03, 0x07, 0x00, //1970 
  0x50, 0x04, 0x08, 0x00, 0x60, //1980 
  0x04, 0x0a, 0x00, 0x60, 0x05, //1990 
  0x00, 0x30, 0x80, 0x05, 0x00, //2000 
  0x40, 0x02, 0x07, 0x00, 0x50, //2010 
  0x04, 0x09, 0x00, 0x60, 0x04, //2020 
  0x00, 0x20, 0x60, 0x05, 0x00, //2030 
  0x30, 0xb0, 0x06, 0x00, 0x50, //2040 
  0x02, 0x07, 0x00, 0x50, 0x03}; //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,每月用一个字节存放,高位存放第一个节气数据,低位存放 
  //第二个节气的数据,可得下表 
  byte[] gLunarHolDay={ 
  0x96, 0xB4, 0x96, 0xA6, 0x97, 0x97, 0x78, 0x79, 0x79, 0x69, 0x78, 0x77, //1901 
  0x96, 0xA4, 0x96, 0x96, 0x97, 0x87, 0x79, 0x79, 0x79, 0x69, 0x78, 0x78, //1902 
  0x96, 0xA5, 0x87, 0x96, 0x87, 0x87, 0x79, 0x69, 0x69, 0x69, 0x78, 0x78, //1903 
  0x86, 0xA5, 0x96, 0xA5, 0x96, 0x97, 0x88, 0x78, 0x78, 0x79, 0x78, 0x87, //1904 
  0x96, 0xB4, 0x96, 0xA6, 0x97, 0x97, 0x78, 0x79, 0x79, 0x69, 0x78, 0x77, //1905 
  0x96, 0xA4, 0x96, 0x96, 0x97, 0x97, 0x79, 0x79, 0x79, 0x69, 0x78, 0x78, //1906 
  0x96, 0xA5, 0x87, 0x96, 0x87, 0x87, 0x79, 0x69, 0x69, 0x69, 0x78, 0x78, //1907 
  0x86, 0xA5, 0x96, 0xA5, 0x96, 0x97, 0x88, 0x78, 0x78, 0x69, 0x78, 0x87, //1908 
  0x96, 0xB4, 0x96, 0xA6, 0x97, 0x97, 0x78, 0x79, 0x79, 0x69, 0x78, 0x77, //1909 
  0x96, 0xA4, 0x96, 0x96, 0x97, 0x97, 0x79, 0x79, 0x79, 0x69, 0x78, 0x78, //1910 
  0x96, 0xA5, 0x87, 0x96, 0x87, 0x87, 0x79, 0x69, 0x69, 0x69, 0x78, 0x78, //1911 
  0x86, 0xA5, 0x96, 0xA5, 0x96, 0x97, 0x88, 0x78, 0x78, 0x69, 0x78, 0x87, //1912 
  0x95, 0xB4, 0x96, 0xA6, 0x97, 0x97, 0x78, 0x79, 0x79, 0x69, 0x78, 0x77, //1913 
  0x96, 0xB4, 0x96, 0xA6, 0x97, 0x97, 0x79, 0x79, 0x79, 0x69, 0x78, 0x78, //1914 
  0x96, 0xA5, 0x97, 0x96, 0x97, 0x87, 0x79, 0x79, 0x69, 0x69, 0x78, 0x78, //1915 
  0x96, 0xA5, 0x96, 0xA5, 0x96, 0x97, 0x88, 0x78, 0x78, 0x79, 0x77, 0x87, //1916 
  0x95, 0xB4, 0x96, 0xA6, 0x96, 0x97, 0x78, 0x79, 0x78, 0x69, 0x78, 0x87, //1917 
  0x96, 0xB4, 0x96, 0xA6, 0x97, 0x97, 0x79, 0x79, 0x79, 0x69, 0x78, 0x77, //1918 
  0x96, 0xA5, 0x97, 0x96, 0x97, 0x87, 0x79, 0x79, 0x69, 0x69, 0x78, 0x78, //1919 
  0x96, 0xA5, 0x96, 0xA5, 0x96, 0x97, 0x88, 0x78, 0x78, 0x79, 0x77, 0x87, //1920 
  0x95, 0xB4, 0x96, 0xA5, 0x96, 0x97, 0x78, 0x79, 0x78, 0x69, 0x78, 0x87, //1921 
  0x96, 0xB4, 0x96, 0xA6, 0x97, 0x97, 0x79, 0x79, 0x79, 0x69, 0x78, 0x77, //1922 
  0x96, 0xA4, 0x96, 0x96, 0x97, 0x87, 0x79, 0x79, 0x69, 0x69, 0x78, 0x78, //1923 
  0x96, 0xA5, 0x96, 0xA5, 0x96, 0x97, 0x88, 0x78, 0x78, 0x79, 0x77, 0x87, //1924 
  0x95, 0xB4, 0x96, 0xA5, 0x96, 0x97, 0x78, 0x79, 0x78, 0x69, 0x78, 0x87, //1925 
  0x96, 0xB4, 0x96, 0xA6, 0x97, 0x97, 0x78, 0x79, 0x79, 0x69, 0x78, 0x77, //1926 
  0x96, 0xA4, 0x96, 0x96, 0x97, 0x87, 0x79, 0x79, 0x79, 0x69, 0x78, 0x78, //1927 
  0x96, 0xA5, 0x96, 0xA5, 0x96, 0x96, 0x88, 0x78, 0x78, 0x78, 0x87, 0x87, //1928 
  0x95, 0xB4, 0x96, 0xA5, 0x96, 0x97, 0x88, 0x78, 0x78, 0x79, 0x77, 0x87, //1929 
  0x96, 0xB4, 0x96, 0xA6, 0x97, 0x97, 0x78, 0x79, 0x79, 0x69, 0x78, 0x77, //1930 
  0x96, 0xA4, 0x96, 0x96, 0x97, 0x87, 0x79, 0x79, 0x79, 0x69, 0x78, 0x78, //1931 
  0x96, 0xA5, 0x96, 0xA5, 0x96, 0x96, 0x88, 0x78, 0x78, 0x78, 0x87, 0x87, //1932 
  0x95, 0xB4, 0x96, 0xA5, 0x96, 0x97, 0x88, 0x78, 0x78, 0x69, 0x78, 0x87, //1933 
  0x96, 0xB4, 0x96, 0xA6, 0x97, 0x97, 0x78, 0x79, 0x79, 0x69, 0x78, 0x77, //1934 
  0x96, 0xA4, 0x96, 0x96, 0x97, 0x97, 0x79, 0x79, 0x79, 0x69, 0x78, 0x78, //1935 
  0x96, 0xA5, 0x96, 0xA5, 0x96, 0x96, 0x88, 0x78, 0x78, 0x78, 0x87, 0x87, //1936 
  0x95, 0xB4, 0x96, 0xA5, 0x96, 0x97, 0x88, 0x78, 0x78, 0x69, 0x78, 0x87, //1937 
  0x96, 0xB4, 0x96, 0xA6, 0x97, 0x97, 0x78, 0x79, 0x79, 0x69, 0x78, 0x77, //1938 
  0x96, 0xA4, 0x96, 0x96, 0x97, 0x97, 0x79, 0x79, 0x79, 0x69, 0x78, 0x78, //1939 
  0x96, 0xA5, 0x96, 0xA5, 0x96, 0x96, 0x88, 0x78, 0x78, 0x78, 0x87, 0x87, //1940 

------华软网友回答------
0x95, 0xB4, 0x96, 0xA5, 0x96, 0x97, 0x88, 0x78, 0x78, 0x69, 0x78, 0x87, //1941 
  0x96, 0xB4, 0x96, 0xA6, 0x97, 0x97, 0x78, 0x79, 0x79, 0x69, 0x78, 0x77, //1942 
  0x96, 0xA4, 0x96, 0x96, 0x97, 0x97, 0x79, 0x79, 0x79, 0x69, 0x78, 0x78, //1943 
  0x96, 0xA5, 0x96, 0xA5, 0xA6, 0x96, 0x88, 0x78, 0x78, 0x78, 0x87, 0x87, //1944 
  0x95, 0xB4, 0x96, 0xA5, 0x96, 0x97, 0x88, 0x78, 0x78, 0x79, 0x77, 0x87, //1945 
  0x95, 0xB4, 0x96, 0xA6, 0x97, 0x97, 0x78, 0x79, 0x78, 0x69, 0x78, 0x77, //1946 
  0x96, 0xB4, 0x96, 0xA6, 0x97, 0x97, 0x79, 0x79, 0x79, 0x69, 0x78, 0x78, //1947 
  0x96, 0xA5, 0xA6, 0xA5, 0xA6, 0x96, 0x88, 0x88, 0x78, 0x78, 0x87, 0x87, //1948 
  0xA5, 0xB4, 0x96, 0xA5, 0x96, 0x97, 0x88, 0x79, 0x78, 0x79, 0x77, 0x87, //1949 
  0x95, 0xB4, 0x96, 0xA5, 0x96, 0x97, 0x78, 0x79, 0x78, 0x69, 0x78, 0x77, //1950 
  0x96, 0xB4, 0x96, 0xA6, 0x97, 0x97, 0x79, 0x79, 0x79, 0x69, 0x78, 0x78, //1951 
  0x96, 0xA5, 0xA6, 0xA5, 0xA6, 0x96, 0x88, 0x88, 0x78, 0x78, 0x87, 0x87, //1952 
  0xA5, 0xB4, 0x96, 0xA5, 0x96, 0x97, 0x88, 0x78, 0x78, 0x79, 0x77, 0x87, //1953 
  0x95, 0xB4, 0x96, 0xA5, 0x96, 0x97, 0x78, 0x79, 0x78, 0x68, 0x78, 0x87, //1954 
  0x96, 0xB4, 0x96, 0xA6, 0x97, 0x97, 0x78, 0x79, 0x79, 0x69, 0x78, 0x77, //1955 
  0x96, 0xA5, 0xA5, 0xA5, 0xA6, 0x96, 0x88, 0x88, 0x78, 0x78, 0x87, 0x87, //1956 
  0xA5, 0xB4, 0x96, 0xA5, 0x96, 0x97, 0x88, 0x78, 0x78, 0x79, 0x77, 0x87, //1957 
  0x95, 0xB4, 0x96, 0xA5, 0x96, 0x97, 0x88, 0x78, 0x78, 0x69, 0x78, 0x87, //1958 
  0x96, 0xB4, 0x96, 0xA6, 0x97, 0x97, 0x78, 0x79, 0x79, 0x69, 0x78, 0x77, //1959 
  0x96, 0xA4, 0xA5, 0xA5, 0xA6, 0x96, 0x88, 0x88, 0x88, 0x78, 0x87, 0x87, //1960 
  0xA5, 0xB4, 0x96, 0xA5, 0x96, 0x96, 0x88, 0x78, 0x78, 0x78, 0x87, 0x87, //1961 
  0x96, 0xB4, 0x96, 0xA5, 0x96, 0x97, 0x88, 0x78, 0x78, 0x69, 0x78, 0x87, //1962 
  0x96, 0xB4, 0x96, 0xA6, 0x97, 0x97, 0x78, 0x79, 0x79, 0x69, 0x78, 0x77, //1963 
  0x96, 0xA4, 0xA5, 0xA5, 0xA6, 0x96, 0x88, 0x88, 0x88, 0x78, 0x87, 0x87, //1964 
  0xA5, 0xB4, 0x96, 0xA5, 0x96, 0x96, 0x88, 0x78, 0x78, 0x78, 0x87, 0x87, //1965 
  0x95, 0xB4, 0x96, 0xA5, 0x96, 0x97, 0x88, 0x78, 0x78, 0x69, 0x78, 0x87, //1966 
  0x96, 0xB4, 0x96, 0xA6, 0x97, 0x97, 0x78, 0x79, 0x79, 0x69, 0x78, 0x77, //1967 
  0x96, 0xA4, 0xA5, 0xA5, 0xA6, 0xA6, 0x88, 0x88, 0x88, 0x78, 0x87, 0x87, //1968 
  0xA5, 0xB4, 0x96, 0xA5, 0x96, 0x96, 0x88, 0x78, 0x78, 0x78, 0x87, 0x87, //1969 
  0x95, 0xB4, 0x96, 0xA5, 0x96, 0x97, 0x88, 0x78, 0x78, 0x69, 0x78, 0x87, //1970 
  0x96, 0xB4, 0x96, 0xA6, 0x97, 0x97, 0x78, 0x79, 0x79, 0x69, 0x78, 0x77, //1971 
  0x96, 0xA4, 0xA5, 0xA5, 0xA6, 0xA6, 0x88, 0x88, 0x88, 0x78, 0x87, 0x87, //1972 
  0xA5, 0xB5, 0x96, 0xA5, 0xA6, 0x96, 0x88, 0x78, 0x78, 0x78, 0x87, 0x87, //1973 
  0x95, 0xB4, 0x96, 0xA5, 0x96, 0x97, 0x88, 0x78, 0x78, 0x69, 0x78, 0x87, //1974 
  0x96, 0xB4, 0x96, 0xA6, 0x97, 0x97, 0x78, 0x79, 0x78, 0x69, 0x78, 0x77, //1975 
  0x96, 0xA4, 0xA5, 0xB5, 0xA6, 0xA6, 0x88, 0x89, 0x88, 0x78, 0x87, 0x87, //1976 
  0xA5, 0xB4, 0x96, 0xA5, 0x96, 0x96, 0x88, 0x88, 0x78, 0x78, 0x87, 0x87, //1977 
  0x95, 0xB4, 0x96, 0xA5, 0x96, 0x97, 0x88, 0x78, 0x78, 0x79, 0x78, 0x87, //1978 
  0x96, 0xB4, 0x96, 0xA6, 0x96, 0x97, 0x78, 0x79, 0x78, 0x69, 0x78, 0x77, //1979 
  0x96, 0xA4, 0xA5, 0xB5, 0xA6, 0xA6, 0x88, 0x88, 0x88, 0x78, 0x87, 0x87, //1980 
  0xA5, 0xB4, 0x96, 0xA5, 0xA6, 0x96, 0x88, 0x88, 0x78, 0x78, 0x77, 0x87, //1981 
  0x95, 0xB4, 0x96, 0xA5, 0x96, 0x97, 0x88, 0x78, 0x78, 0x79, 0x77, 0x87, //1982 
  0x95, 0xB4, 0x96, 0xA5, 0x96, 0x97, 0x78, 0x79, 0x78, 0x69, 0x78, 0x77, //1983 
  0x96, 0xB4, 0xA5, 0xB5, 0xA6, 0xA6, 0x87, 0x88, 0x88, 0x78, 0x87, 0x87, //1984 
  0xA5, 0xB4, 0xA6, 0xA5, 0xA6, 0x96, 0x88, 0x88, 0x78, 0x78, 0x87, 0x87, //1985 
  0xA5, 0xB4, 0x96, 0xA5, 0x96, 0x97, 0x88, 0x78, 0x78, 0x79, 0x77, 0x87, //1986 
  0x95, 0xB4, 0x96, 0xA5, 0x96, 0x97, 0x88, 0x79, 0x78, 0x69, 0x78, 0x87, //1987 
  0x96, 0xB4, 0xA5, 0xB5, 0xA6, 0xA6, 0x87, 0x88, 0x88, 0x78, 0x87, 0x86, //1988 
  0xA5, 0xB4, 0xA5, 0xA5, 0xA6, 0x96, 0x88, 0x88, 0x88, 0x78, 0x87, 0x87, //1989 
  0xA5, 0xB4, 0x96, 0xA5, 0x96, 0x96, 0x88, 0x78, 0x78, 0x79, 0x77, 0x87, //1990 
  0x95, 0xB4, 0x96, 0xA5, 0x86, 0x97, 0x88, 0x78, 0x78, 0x69, 0x78, 0x87, //1991 
  0x96, 0xB4, 0xA5, 0xB5, 0xA6, 0xA6, 0x87, 0x88, 0x88, 0x78, 0x87, 0x86, //1992 
  0xA5, 0xB3, 0xA5, 0xA5, 0xA6, 0x96, 0x88, 0x88, 0x88, 0x78, 0x87, 0x87, //1993 
  0xA5, 0xB4, 0x96, 0xA5, 0x96, 0x96, 0x88, 0x78, 0x78, 0x78, 0x87, 0x87, //1994 
  0x95, 0xB4, 0x96, 0xA5, 0x96, 0x97, 0x88, 0x76, 0x78, 0x69, 0x78, 0x87, //1995 
  0x96, 0xB4, 0xA5, 0xB5, 0xA6, 0xA6, 0x87, 0x88, 0x88, 0x78, 0x87, 0x86, //1996 
  0xA5, 0xB3, 0xA5, 0xA5, 0xA6, 0xA6, 0x88, 0x88, 0x88, 0x78, 0x87, 0x87, //1997 
  0xA5, 0xB4, 0x96, 0xA5, 0x96, 0x96, 0x88, 0x78, 0x78, 0x78, 0x87, 0x87, //1998 
  0x95, 0xB4, 0x96, 0xA5, 0x96, 0x97, 0x88, 0x78, 0x78, 0x69, 0x78, 0x87, //1999 
  0x96, 0xB4, 0xA5, 0xB5, 0xA6, 0xA6, 0x87, 0x88, 0x88, 0x78, 0x87, 0x86, //2000 
  0xA5, 0xB3, 0xA5, 0xA5, 0xA6, 0xA6, 0x88, 0x88, 0x88, 0x78, 0x87, 0x87, //2001 
  0xA5, 0xB4, 0x96, 0xA5, 0x96, 0x96, 0x88, 0x78, 0x78, 0x78, 0x87, 0x87, //2002 
  0x95, 0xB4, 0x96, 0xA5, 0x96, 0x97, 0x88, 0x78, 0x78, 0x69, 0x78, 0x87, //2003 
  0x96, 0xB4, 0xA5, 0xB5, 0xA6, 0xA6, 0x87, 0x88, 0x88, 0x78, 0x87, 0x86, //2004 
  0xA5, 0xB3, 0xA5, 0xA5, 0xA6, 0xA6, 0x88, 0x88, 0x88, 0x78, 0x87, 0x87, //2005 
  0xA5, 0xB4, 0x96, 0xA5, 0xA6, 0x96, 0x88, 0x88, 0x78, 0x78, 0x87, 0x87, //2006 
  0x95, 0xB4, 0x96, 0xA5, 0x96, 0x97, 0x88, 0x78, 0x78, 0x69, 0x78, 0x87, //2007 
  0x96, 0xB4, 0xA5, 0xB5, 0xA6, 0xA6, 0x87, 0x88, 0x87, 0x78, 0x87, 0x86, //2008 
  0xA5, 0xB3, 0xA5, 0xB5, 0xA6, 0xA6, 0x88, 0x88, 0x88, 0x78, 0x87, 0x87, //2009 
  0xA5, 0xB4, 0x96, 0xA5, 0xA6, 0x96, 0x88, 0x88, 0x78, 0x78, 0x87, 0x87, //2010 
  0x95, 0xB4, 0x96, 0xA5, 0x96, 0x97, 0x88, 0x78, 0x78, 0x79, 0x78, 0x87, //2011 
  0x96, 0xB4, 0xA5, 0xB5, 0xA5, 0xA6, 0x87, 0x88, 0x87, 0x78, 0x87, 0x86, //2012 
  0xA5, 0xB3, 0xA5, 0xB5, 0xA6, 0xA6, 0x87, 0x88, 0x88, 0x78, 0x87, 0x87, //2013 
  0xA5, 0xB4, 0x96, 0xA5, 0xA6, 0x96, 0x88, 0x88, 0x78, 0x78, 0x87, 0x87, //2014 
  0x95, 0xB4, 0x96, 0xA5, 0x96, 0x97, 0x88, 0x78, 0x78, 0x79, 0x77, 0x87, //2015 
  0x95, 0xB4, 0xA5, 0xB4, 0xA5, 0xA6, 0x87, 0x88, 0x87, 0x78, 0x87, 0x86, //2016 
  0xA5, 0xC3, 0xA5, 0xB5, 0xA6, 0xA6, 0x87, 0x88, 0x88, 0x78, 0x87, 0x87, //2017 
  0xA5, 0xB4, 0xA6, 0xA5, 0xA6, 0x96, 0x88, 0x88, 0x78, 0x78, 0x87, 0x87, //2018 
  0xA5, 0xB4, 0x96, 0xA5, 0x96, 0x96, 0x88, 0x78, 0x78, 0x79, 0x77, 0x87, //2019 

------华软网友回复------
0x95, 0xB4, 0xA5, 0xB4, 0xA5, 0xA6, 0x97, 0x87, 0x87, 0x78, 0x87, 0x86, //2020 
  0xA5, 0xC3, 0xA5, 0xB5, 0xA6, 0xA6, 0x87, 0x88, 0x88, 0x78, 0x87, 0x86, //2021 
  0xA5, 0xB4, 0xA5, 0xA5, 0xA6, 0x96, 0x88, 0x88, 0x88, 0x78, 0x87, 0x87, //2022 
  0xA5, 0xB4, 0x96, 0xA5, 0x96, 0x96, 0x88, 0x78, 0x78, 0x79, 0x77, 0x87, //2023 
  0x95, 0xB4, 0xA5, 0xB4, 0xA5, 0xA6, 0x97, 0x87, 0x87, 0x78, 0x87, 0x96, //2024 
  0xA5, 0xC3, 0xA5, 0xB5, 0xA6, 0xA6, 0x87, 0x88, 0x88, 0x78, 0x87, 0x86, //2025 
  0xA5, 0xB3, 0xA5, 0xA5, 0xA6, 0xA6, 0x88, 0x88, 0x88, 0x78, 0x87, 0x87, //2026 
  0xA5, 0xB4, 0x96, 0xA5, 0x96, 0x96, 0x88, 0x78, 0x78, 0x78, 0x87, 0x87, //2027 
  0x95, 0xB4, 0xA5, 0xB4, 0xA5, 0xA6, 0x97, 0x87, 0x87, 0x78, 0x87, 0x96, //2028 
  0xA5, 0xC3, 0xA5, 0xB5, 0xA6, 0xA6, 0x87, 0x88, 0x88, 0x78, 0x87, 0x86, //2029 
  0xA5, 0xB3, 0xA5, 0xA5, 0xA6, 0xA6, 0x88, 0x88, 0x88, 0x78, 0x87, 0x87, //2030 
  0xA5, 0xB4, 0x96, 0xA5, 0x96, 0x96, 0x88, 0x78, 0x78, 0x78, 0x87, 0x87, //2031 
  0x95, 0xB4, 0xA5, 0xB4, 0xA5, 0xA6, 0x97, 0x87, 0x87, 0x78, 0x87, 0x96, //2032 
  0xA5, 0xC3, 0xA5, 0xB5, 0xA6, 0xA6, 0x88, 0x88, 0x88, 0x78, 0x87, 0x86, //2033 
  0xA5, 0xB3, 0xA5, 0xA5, 0xA6, 0xA6, 0x88, 0x78, 0x88, 0x78, 0x87, 0x87, //2034 
  0xA5, 0xB4, 0x96, 0xA5, 0xA6, 0x96, 0x88, 0x88, 0x78, 0x78, 0x87, 0x87, //2035 
  0x95, 0xB4, 0xA5, 0xB4, 0xA5, 0xA6, 0x97, 0x87, 0x87, 0x78, 0x87, 0x96, //2036 
  0xA5, 0xC3, 0xA5, 0xB5, 0xA6, 0xA6, 0x87, 0x88, 0x88, 0x78, 0x87, 0x86, //2037 
  0xA5, 0xB3, 0xA5, 0xA5, 0xA6, 0xA6, 0x88, 0x88, 0x88, 0x78, 0x87, 0x87, //2038 
  0xA5, 0xB4, 0x96, 0xA5, 0xA6, 0x96, 0x88, 0x88, 0x78, 0x78, 0x87, 0x87, //2039 
  0x95, 0xB4, 0xA5, 0xB4, 0xA5, 0xA6, 0x97, 0x87, 0x87, 0x78, 0x87, 0x96, //2040 
  0xA5, 0xC3, 0xA5, 0xB5, 0xA5, 0xA6, 0x87, 0x88, 0x87, 0x78, 0x87, 0x86, //2041 
  0xA5, 0xB3, 0xA5, 0xB5, 0xA6, 0xA6, 0x88, 0x88, 0x88, 0x78, 0x87, 0x87, //2042 
  0xA5, 0xB4, 0x96, 0xA5, 0xA6, 0x96, 0x88, 0x88, 0x78, 0x78, 0x87, 0x87, //2043 
  0x95, 0xB4, 0xA5, 0xB4, 0xA5, 0xA6, 0x97, 0x87, 0x87, 0x88, 0x87, 0x96, //2044 
  0xA5, 0xC3, 0xA5, 0xB4, 0xA5, 0xA6, 0x87, 0x88, 0x87, 0x78, 0x87, 0x86, //2045 
  0xA5, 0xB3, 0xA5, 0xB5, 0xA6, 0xA6, 0x87, 0x88, 0x88, 0x78, 0x87, 0x87, //2046 
  0xA5, 0xB4, 0x96, 0xA5, 0xA6, 0x96, 0x88, 0x88, 0x78, 0x78, 0x87, 0x87, //2047 
  0x95, 0xB4, 0xA5, 0xB4, 0xA5, 0xA5, 0x97, 0x87, 0x87, 0x88, 0x86, 0x96, //2048 
  0xA4, 0xC3, 0xA5, 0xA5, 0xA5, 0xA6, 0x97, 0x87, 0x87, 0x78, 0x87, 0x86, //2049 
  0xA5, 0xC3, 0xA5, 0xB5, 0xA6, 0xA6, 0x87, 0x88, 0x78, 0x78, 0x87, 0x87}; //2050 
   
   
  private DateTime m_Date; 
  public DateTime Date 
  { 
  get{ return m_Date;} 
  set{ m_Date = value;} 
  } 
   
  public CNDate() 
  { 
  Date = DateTime.Today; 
  } 
  public CNDate(DateTime dt) 
  { 
  Date = dt.Date; 
  } 
  //计算指定日期的星座序号 
  public int GetConstellation() 
  { 
  int Y, M, D; 
  Y = m_Date.Year; 
  M = m_Date.Month; 
  D = m_Date.Day; 
  Y = M * 100 + D; 
  if (((Y >= 321) && (Y <= 419))) { return 0;} 
  else if ((Y >= 420) && (Y <= 520)) { return 1;} 
  else if ((Y >= 521) && (Y <= 620)) { return 2;} 
  else if ((Y >= 621) && (Y <= 722)) { return 3;} 
  else if ((Y >= 723) && (Y <= 822)) { return 4;} 
  else if ((Y >= 823) && (Y <= 922)) { return 5;} 
  else if ((Y >= 923) && (Y <= 1022)) { return 6;} 
  else if ((Y >= 1023) && (Y <= 1121)) { return 7;} 
  else if ((Y >= 1122) && (Y <= 1221)) { return 8;} 
  else if ((Y >= 1222) || (Y <= 119)) { return 9;} 
  else if ((Y >= 120) && (Y <= 218)) { return 10;} 
  else if ((Y >= 219) && (Y <= 320)) { return 11;} 
  else { return -1;}; 
  } 
   
  //计算指定日期的星座名称 
  public string GetConstellationName() 
  { 
  int Constellation; 
  Constellation = GetConstellation(); 
  if ((Constellation >= 0) && (Constellation <= 11)) 
  { return ConstellationName[Constellation];} 
  else 
  { return "";}; 
  } 
   
  //计算公历当天对应的节气 0-23,-1表示不是节气 
  public int l_GetLunarHolDay() 
  { 
  byte Flag; 
  int Day, iYear, iMonth, iDay; 
  iYear = m_Date.Year; 
  if ((iYear < START_YEAR) || (iYear > END_YEAR)) 
  { return -1;}; 
  iMonth = m_Date.Month; 
  iDay = m_Date.Day; 
  Flag = gLunarHolDay[(iYear - START_YEAR) * 12 + iMonth - 1]; 
  if (iDay < 15) 
  { Day = 15 - ((Flag >> 4) & 0x0f);} 
  else 
  {Day = (Flag & 0x0f) + 15;}; 
  if (iDay == Day) 
  { 
  if (iDay > 15) 
  { return (iMonth - 1) * 2 + 1;} 
  else 
  { return (iMonth - 1) * 2;} 
  } 
  else 
  {return -1;}; 
  } 
   


------华软网友回复------
改不了
------华软网友回复------
狗狗写个DLL咯,呵~`
------华软网友回复------
我的天,试试看的说
------华软网友回复------
后面应该还有啊?继续的说
------华软网友回复------
pb早就有了,是位仁兄将pfc中的日期uo改的
------华软网友回复------
跟俺公司里用的一模一样,连注释都一样
------华软网友回复------
我都要看睡着了!
------华软网友回复------
春雨惊分清谷天, 
夏满芒至二暑连。
秋处露分寒霜降,
冬雪雪冬小大寒。
------华软网友回复------
pdriver.com以前有人改过
------华软网友回复------
public function string of_convertdayoflunar (date ad_date);string WeekName[0 to 7],TianGan[0 to 9],DiZhi[0 to 11],ShuXiang[0 to 11],DayName[0 to 30],MonName[0 to 12]
long MonthAdd[0 to 11],NongliData[0 to 99]
long  curTime, curYear, curMonth, curDay, curWeekday
string GongliStr, WeekdayStr, NongliStr, NongliDayStr
long i, m, n, k, isEnd, bit,thedate
WeekName[0] = " * "
WeekName[1] = "星期日"
WeekName[2] = "星期一"
WeekName[3] = "星期二"
WeekName[4] = "星期三"
WeekName[5] = "星期四"
WeekName[6] = "星期五"
WeekName[7] = "星期六"

//天干名称
TianGan[0] = "甲"
TianGan[1] = "乙"
TianGan[2] = "丙"
TianGan[3] = "丁"
TianGan[4] = "戊"
TianGan[5] = "己"
TianGan[6] = "庚"
TianGan[7] = "辛"
TianGan[8] = "壬"
TianGan[9] = "癸"

//地支名称
DiZhi[0] = "子"
DiZhi[1] = "丑"
DiZhi[2] = "寅"
DiZhi[3] = "卯"
DiZhi[4] = "辰"
DiZhi[5] = "巳"
DiZhi[6] = "午"
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] = "初九"
DayName[10] = "初十"
DayName[11] = "十一"
DayName[12] = "十二"
DayName[13] = "十三"
DayName[14] = "十四"
DayName[15] = "十五"
DayName[16] = "十六"
DayName[17] = "十七"
DayName[18] = "十八"
DayName[19] = "十九"
DayName[20] = "二十"
DayName[21] = "廿一"
DayName[22] = "廿二"
DayName[23] = "廿三"
DayName[24] = "廿四"
DayName[25] = "廿五"
DayName[26] = "廿六"
DayName[27] = "廿七"
DayName[28] = "廿八"
DayName[29] = "廿九"
DayName[30] = "三十"

//农历月份名
MonName[0] = "*"
MonName[1] = "正"
MonName[2] = "二"
MonName[3] = "三"
MonName[4] = "四"
MonName[5] = "五"
MonName[6] = "六"
MonName[7] = "七"
MonName[8] = "八"
MonName[9] = "九"
MonName[10] = "十"
MonName[11] = "十一"
MonName[12] = "腊"

//公历每月前面的天数
MonthAdd[0] = 0
MonthAdd[1] = 31
MonthAdd[2] = 59
MonthAdd[3] = 90
MonthAdd[4] = 120
MonthAdd[5] = 151
MonthAdd[6] = 181
MonthAdd[7] = 212
MonthAdd[8] = 243
MonthAdd[9] = 273
MonthAdd[10] = 304
MonthAdd[11] = 334

//农历数据
NongliData[0] = 2635
NongliData[1] = 333387
NongliData[2] = 1701
NongliData[3] = 1748
NongliData[4] = 267701
NongliData[5] = 694
NongliData[6] = 2391
NongliData[7] = 133423
NongliData[8] = 1175
NongliData[9] = 396438
NongliData[10] = 3402
NongliData[11] = 3749
NongliData[12] = 331177
NongliData[13] = 1453
NongliData[14] = 694
NongliData[15] = 201326
NongliData[16] = 2350
NongliData[17] = 465197
NongliData[18] = 3221
NongliData[19] = 3402
NongliData[20] = 400202
NongliData[21] = 2901
NongliData[22] = 1386
NongliData[23] = 267611
NongliData[24] = 605
NongliData[25] = 2349
NongliData[26] = 137515
NongliData[27] = 2709
NongliData[28] = 464533
NongliData[29] = 1738
NongliData[30] = 2901
NongliData[31] = 330421
NongliData[32] = 1242
NongliData[33] = 2651
NongliData[34] = 199255
NongliData[35] = 1323
NongliData[36] = 529706
NongliData[37] = 3733
NongliData[38] = 1706
NongliData[39] = 398762
NongliData[40] = 2741
NongliData[41] = 1206
NongliData[42] = 267438
NongliData[43] = 2647
NongliData[44] = 1318
NongliData[45] = 204070
NongliData[46] = 3477
NongliData[47] = 461653
NongliData[48] = 1386
NongliData[49] = 2413
NongliData[50] = 330077
NongliData[51] = 1197
NongliData[52] = 2637
NongliData[53] = 268877
NongliData[54] = 3365
NongliData[55] = 531109
NongliData[56] = 2900
NongliData[57] = 2922
NongliData[58] = 398042
NongliData[59] = 2395
NongliData[60] = 1179
NongliData[61] = 267415
NongliData[62] = 2635
NongliData[63] = 661067
NongliData[64] = 1701
NongliData[65] = 1748
NongliData[66] = 398772
NongliData[67] = 2742
NongliData[68] = 2391
NongliData[69] = 330031
NongliData[70] = 1175
NongliData[71] = 1611
NongliData[72] = 200010
NongliData[73] = 3749
NongliData[74] = 527717
NongliData[75] = 1452
NongliData[76] = 2742
NongliData[77] = 332397
NongliData[78] = 2350
NongliData[79] = 3222
NongliData[80] = 268949
NongliData[81] = 3402
NongliData[82] = 3493
NongliData[83] = 133973
NongliData[84] = 1386
NongliData[85] = 464219
NongliData[86] = 605
NongliData[87] = 2349
NongliData[88] = 334123
NongliData[89] = 2709
NongliData[90] = 2890
NongliData[91] = 267946
NongliData[92] = 2773
NongliData[93] = 592565
NongliData[94] = 1210
NongliData[95] = 2651
NongliData[96] = 395863
NongliData[97] = 1323
NongliData[98] = 2707
NongliData[99] = 265877

curYear = Year(ad_date)
curMonth = Month(ad_date)
curDay = Day(ad_date)
GongliStr = string(curYear)+ "年"
If (curMonth < 10) Then
    GongliStr = GongliStr + "0" +string(curMonth) + "月"
Else
    GongliStr = GongliStr +string(curMonth)+"月"
End If
If (curDay < 10) Then
    GongliStr = GongliStr+ "0" +string(curDay)+"日"
Else
    GongliStr = GongliStr+string(curDay)+"日"
End If
//生成当前公历星期 ==> WeekdayStr
curWeekday = daynumber(ad_date)
WeekdayStr = weekName[curWeekday]
//计算到初始时间1921年2月8日的天数:1921-2-8(正月初一)
TheDate = (curYear - 1921) * 365 + Int((curYear - 1921) / 4) + curDay + MonthAdd[curMonth - 1] - 38
If (mod(CurYear,4) = 0 And curMonth > 2) Then
    TheDate = TheDate+1
End If
//计算农历天干、地支、月、日
isEnd = 0
m = 0
Do
    If (NongliData[m] < 4095) Then
        k = 11
    Else
        k = 12
    End If
    n = k
    Do
        If (n < 0) Then
            Exit 
        End If
   //获取NongliData(m)的第n个二进制位的值
    bit = NongliData[m]
    For i = 1 To n Step 1
        bit = Int(bit / 2)
    Next
    bit = mod(bit,2)
    If (TheDate <= 29 + bit) Then
        isEnd = 1
        Exit
    End If
    TheDate = TheDate - 29 - bit
    n = n - 1
loop until 1<>1
  If (isEnd = 1) Then
      Exit 
  End If 
  m = m + 1
Loop until 1<>1
curYear = 1921 + m
curMonth = k - n + 1
curDay = TheDate

If (k = 12) Then
    If (curMonth = (Int(NongliData[m] / 65536) + 1)) Then
        curMonth = 1 - curMonth
    ElseIf (curMonth > (Int(NongliData[m] / 65536) + 1)) Then
        curMonth = curMonth - 1
    End If

End If

//生成农历天干、地支、属相 ==> NongliStr
NongliStr = "农历" + TianGan[mod(mod(curYear - 4,60),10)] + DiZhi[mod(mod(curYear - 4, 60),12)] + "年"
NongliStr = NongliStr +"(" + ShuXiang[mod(mod(curYear - 4,60),12)] + ")"

//生成农历月、日 ==> NongliDayStr
If (curMonth < 1) Then
    NongliDayStr = "闰" + MonName[-1 * curMonth]
Else
    NongliDayStr = MonName[curMonth]
End If
NongliDayStr = NongliDayStr + "月"
NongliDayStr = NongliDayStr+DayName[curDay]
return nonglistr+nonglidaystr
end function


------华软网友回复------
pdriver.com

上的也是根据ASP代码改的!

我在一个网站上看到了抄的,只有这么多

pdriver.com上的代码我也有
------华软网友回复------
wu_07(一只狗不孤单,想一只狗才孤单) 给的函数,算出今天的农历怎么是农历乙酉年(鸡)九月廿五啊????
------华软网友回复------
别人写的,我也没有测试过:)
------华软网友回复------
只要知道算法就好了
------华软网友回复------
自己写一个不就行了,干嘛还要改人家的?
------华软网友回复------
wu_07(一只狗不孤单,想一只狗才孤单) 的算法有问题,我试过了,不行      
华软声明:本内容来自网络,如有侵犯您版权请来信指出,本站立即删除。