csharp 在万年历中计算显示农历日子出错

        /// <summary>
        /// 中国农历日子(不含年月) Substring方法从零计算起
        /// 2012-02-21 今天是农历三十,发现万年历出错,改正过来。
        /// 涂聚文 缔友计算机信息技术有限公司 捷为工作室
        /// </summary>
        /// <param name="iDay">数字日子</param>
        /// <returns>农历日子</returns>
        public string FormatLunarDay(ushort iDay)
        {
            string szText1 = "初十廿三";//4
            string szText2 = "一二三四五六七八九十";//10
            string strDay;
            if ((iDay != 20) && (iDay != 30))
            {
                strDay = szText1.Substring((iDay - 1) / 10, 1);
                strDay = strDay + szText2.Substring((iDay - 1) % 10, 1);
            }
            else
            {
                //strDay = szText1.Substring((iDay / 10)+1, 1); 在计算二十,三十报错,这是以一为计算起,这里汉字以一个字节算(和英文字母一样)
                strDay = szText1.Substring((iDay / 10) , 1);
                strDay = strDay + "十";
            }
            return strDay;
        }

demo: http://www.dusystem.com/Calendar.aspx

你可能感兴趣的:(sha)