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}");


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM