首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在C#中将公历日期转换为科普特日期

如何在C#中将公历日期转换为科普特日期
EN

Stack Overflow用户
提问于 2019-07-14 20:22:45
回答 1查看 292关注 0票数 0

如何在C#中将公历转换为科普特历法?

我有以下代码:

代码语言:javascript
运行
复制
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; }
}

我需要实现以下方法

代码语言:javascript
运行
复制
public static CopticDate ToCopticDate(this DateTime date)
{
    //...        
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-07-15 01:45:03

就像Marc一样,我的工具箱里有NodaTime来做这样的工作。您需要安装Nuget包装

实现很简单--我们从输入日期创建一个LocalDate对象,并使用.WithCalendar(CalendarSystem.Coptic)将其转换为科普特日历。然后我们返回类的一个实例:

代码语言:javascript
运行
复制
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年

哪个据我所知是预期的输出。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57030882

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档