当前位置:编程学习 > C#/ASP.NET >>

跪求农历转阳历的相关代码

    /// <summary>
    /// 中国日历信息实体类
    /// cncxz(虫虫) 2007-2-9
下了这位兄弟的代码,公力转农历没有问题,但是农历转公历的话,比如我有一个人的出生为1956-4-10 ,转成农历是2月30,现在我要将农历2月30+今年 也就是2011年2月30日转成公历,出现出错,请问大家还有没有其他的办法,谢谢 --------------------编程问答--------------------
/**//// <summary>
        /// 阴历转阳历
        /// </summary>
        /// <param name="year">阴历年</param>
        /// <param name="month">阴历月</param>
        /// <param name="day">阴历日</param>
        /// <param name="IsLeapMonth">是否闰月</param>
        public static DateTime GetDateFromLunarDate(int year, int month, int day, bool IsLeapMonth)
        {
            if (year < 1902 || year > 2100)
                throw new Exception("只支持1902~2100期间的农历年");
            if (month < 1 || month > 12)
                throw new Exception("表示月份的数字必须在1~12之间");

            if (day < 1 || day > calendar.GetDaysInMonth(year, month))
                throw new Exception("农历日期输入有误");

            int num1 = 0, num2 = 0;
            int leapMonth = calendar.GetLeapMonth(year);

            if (((leapMonth == month + 1) && IsLeapMonth) || (leapMonth > 0 && leapMonth <= month))
                num2 = month;
            else
                num2 = month - 1;

            while (num2 > 0)
            {
                num1 += calendar.GetDaysInMonth(year, num2--);
            }

            DateTime dt = GetLunarNewYearDate(year);
            return dt.AddDays(num1 + day - 1);
        }
--------------------编程问答-------------------- http://pao99999.popo.blog.163.com/blog/static/105001252006112455322645/
微软官方的库,试试看。 --------------------编程问答--------------------
引用 1 楼 wxr0323 的回复:
C# code

/**//// <summary>
        /// 阴历转阳历
        /// </summary>
        /// <param name="year">阴历年</param>
        /// <param name="month">阴历月</param>
        /// <param name="day">阴历日</par……






这个代码有问题吧。。。。农历2011-2-30日格式不对 --------------------编程问答--------------------

[code=C#]
 ChineseLunisolarCalendar clc = new ChineseLunisolarCalendar();
                    dtbBirthday.Value = clc.ToDateTime(time.Year, time.Month, time.Day, 0, 0, 0, 0);

[/code]
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,