【问题标题】:persian week in c# returning wrong numberc#中的波斯周返回错误的数字
【发布时间】:2018-01-03 16:23:36
【问题描述】:

想在 persianCalnder 中获取 DayOfWeek 但它始终与格鲁吉亚日历相同,

   DateTime today = DateTime.Today;
   PersianCalendar pc = new PersianCalendar();

 var  geDayOfWeek= today.DayOfWeek;             
 var pcDayOfWeek=pc.GetDayOfWeek(today);

为什么 geDayOfWeek 和 pcDayOfWeek 的值总是一样的?波斯周从星期六而不是星期一开始,例如星期日应该是 2 而不是 0。

在波斯日历中获取日期的任何解决方案?

我需要这个来计算波斯历而不是格鲁吉亚历中一周的开始日期和结束日期。

【问题讨论】:

    标签: c#


    【解决方案1】:

    你可以为 DateTime 写一个扩展方法来获取 Persion Day Of Week

    public static class DateTimeHelper
    {
        public static PersianDayOfWeek PersionDayOfWeek(this DateTime date)
        {
            switch (date.DayOfWeek)
            {
                case DayOfWeek.Saturday:
                    return PersianDayOfWeek.Shanbe;
                case DayOfWeek.Sunday:
                    return PersianDayOfWeek.Yekshanbe;
                case DayOfWeek.Monday:
                    return PersianDayOfWeek.Doshanbe;
                case DayOfWeek.Tuesday:
                    return PersianDayOfWeek.Seshanbe;
                case DayOfWeek.Wednesday:
                    return PersianDayOfWeek.Charshanbe;
                case DayOfWeek.Thursday:
                    return PersianDayOfWeek.Panjshanbe;
                case DayOfWeek.Friday:
                    return PersianDayOfWeek.Jome;
                default:
                    throw new Exception();
            }
        }
        public enum PersianDayOfWeek
        {
            Shanbe=1,
            Yekshanbe=2,
            Doshanbe=3,
            Seshanbe=4,
            Charshanbe=5,
            Panjshanbe=6,
            Jome=7
        }
    }
    

    你可以这样使用它:

    PersianDayOfWeek DoW = DateTime.Now.PersionDayOfWeek();

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-11-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-25
      • 2013-02-11
      相关资源
      最近更新 更多