C# 阳历与农历互转

阳历转农历

  System.Globalization命名空间下提供了专门用于计算中国农历的ChineseLunisolarCalendar类,从EastAsianLunisolarCalendar派生而来。

            ChineseLunisolarCalendar cncld = new ChineseLunisolarCalendar();
            DateTime dt = new DateTime(2020, 12, 15);
            int year = cncld.GetYear(dt);
            // 是否有闰月,返回正整数(2020年闰4月,返回值为5)
            int flag = cncld.GetLeapMonth(year);
            int month = flag > 0 ? cncld.GetMonth(dt) - 1 : cncld.GetMonth(dt);
            int day = cncld.GetDayOfMonth(dt);
            Console.WriteLine($"{dt:d},农历:{year}年{month}月{day}日");

农历转阳历

            DateTime dtnl = cncld.ToDateTime(year, month, day, 0, 0, 0, 0);
            dtnl = flag > 0 ? dtnl.AddMonths(1) : dtnl;
            Console.WriteLine($"{dtnl}");

本文来自博客园,作者:一纸年华,转载请注明原文链接:https://www.cnblogs.com/nullcodeworld/p/15238902.html

原文地址:https://www.cnblogs.com/nullcodeworld/p/15238902.html