计算每年元旦干支,已知1899年为己巳。
平年 干合支冲减一。
闰年 干合加一支冲。则1900年为平年,元旦日干支
为甲戌。
//根据输入的公历年和元旦干支计算下一年元旦干支 // 平年 干合支冲减一 // 闰年 干合加一支冲 // solarYear - 当前公历年 // 返回下一年1月1日元旦的干支 public string GetSolarNewYearDayGanZhi(int solarYear, string ganzhi) { int gan, zhi; gan = GanToNum(ganzhi.Substring(0, 1)); //取天干 zhi = ZhiToNum(ganzhi.Substring(1, 1)); //取地支 //平年 if (!IsNotLeepYear(solarYear)) { gan += 5; zhi += 5; gan = Math.Abs(gan%10); zhi = Math.Abs(zhi % 12); } else if (IsNotLeepYear(solarYear)) { gan += 6; zhi += 6; gan = Math.Abs(gan % 10); zhi = Math.Abs(zhi % 12); } string rel = NumToGan(gan) + NumToZhi(zhi); return rel; } //输出所有农历每月初一干支到文件 //检测某公历年是否为闰年 //能被4整除,或能被400整除是闰年 public bool IsNotLeepYear(int solarYear) { //被400整除闰年 if (solarYear % 400 == 0) return true; else if ((solarYear % 4 == 0) && (solarYear % 100 != 0)) { return true; } else return false; return false; }