西历农历转换程式 黄晓鸣 1995,7,25prototype: int calconv( struct convdate * );struct convdate
{
      int source; ==0 则输入日期为西历, !=0 则输入为农历
      int solaryear; 输出或输入之西历年份
      int solarmonth; 西历月
      int solardate; 西历日
      int lunaryear; 输出或输入之农历年份
      int lunarmonth; 农历月
      int lunardate; 农历日
      int weekday; 该日为星期几 ( 0==星期日, 1==星期一, ... )
      int kan; 该日天干 ( 0==甲, 1==乙, ..., 9==癸 )
      int chih; 该日地支 ( 0==子, 1==丑, ..., 11==亥 )
};呼叫时须设定 souce 的值, 若为 0 则为西历转农历, 否则为农历转西历. 然後视
输入为西历或农历来设定西历或农历的年月日. 转换後的年月日会填入结构中( 农
历或西历 ), 以及该日为星期几, 天干地支.
若函式的返回值为 0 表示没有错误, 1 为输入之年份错误, 2 为输入之月份错误,
3 为输入之日期错误.
输入之西历年须在 1937 - 2031 间
输入之农历年须在 1936 - 2030 间
若须扩充, 则增加 lunarcal[]

解决方案 »

  1.   

    西历农历转换程式 黄晓鸣 1995,7,25prototype: int calconv( struct convdate * );struct convdate
    {
          int source; ==0 则输入日期为西历, !=0 则输入为农历
          int solaryear; 输出或输入之西历年份
          int solarmonth; 西历月
          int solardate; 西历日
          int lunaryear; 输出或输入之农历年份
          int lunarmonth; 农历月
          int lunardate; 农历日
          int weekday; 该日为星期几 ( 0==星期日, 1==星期一, ... )
          int kan; 该日天干 ( 0==甲, 1==乙, ..., 9==癸 )
          int chih; 该日地支 ( 0==子, 1==丑, ..., 11==亥 )
    };呼叫时须设定 souce 的值, 若为 0 则为西历转农历, 否则为农历转西历. 然後视
    输入为西历或农历来设定西历或农历的年月日. 转换後的年月日会填入结构中( 农
    历或西历 ), 以及该日为星期几, 天干地支.
    若函式的返回值为 0 表示没有错误, 1 为输入之年份错误, 2 为输入之月份错误,
    3 为输入之日期错误.
    输入之西历年须在 1937 - 2031 间
    输入之农历年须在 1936 - 2030 间
    若须扩充, 则增加 lunarcal[]