如何在C#中将公历转换为科普特历法?
我有以下代码:
public enum CopticMonth
{
Thout = 1,
Paopi = 2,
Hathor = 3,
Koiak = 4,
Tobi = 5,
Meshir = 6,
Paremhat = 7,
Parmouti = 8,
Pashons = 9,
Paoni = 10,
Epip = 11,
Mesori = 12,
PiKogiEnavot = 13
}
public class CopticDate
{
public int Day { get; set; }
public CopticMonth Month { get; set; }
public int Year { get; set; }
}
我需要实现以下方法
public static CopticDate ToCopticDate(this DateTime date)
{
//...
}
发布于 2019-07-15 01:45:03
就像Marc一样,我的工具箱里有NodaTime来做这样的工作。您需要安装Nuget包装。
实现很简单--我们从输入日期创建一个LocalDate
对象,并使用.WithCalendar(CalendarSystem.Coptic)
将其转换为科普特日历。然后我们返回类的一个实例:
public static CopticDate ToCopticDate(this DateTime date)
{
var localDate = LocalDate.FromDateTime(date, CalendarSystem.Gregorian)
.WithCalendar(CalendarSystem.Coptic);
return new CopticDate
{
Day = localDate.Day,
Month = (CopticMonth)localDate.Month,
Year = localDate.Year
};
}
输入日期为2019年9月6日,输出如下:
日期:1 月份: PiKogiEnavot 年份:1735年
哪个据我所知是预期的输出。
https://stackoverflow.com/questions/57030882
复制相似问题