获取当前时间的一周列表

 /// <summary>
        /// 获取当前时间的一周列表
        /// </summary>
        /// <param name="time"></param>
        /// <returns></returns>
        public static List<HdisWeek> HdsiWeek(this DateTime time)
        {
            var weekDays = new List<HdisWeek>();

            var weekIndex = time.WeekDayIndex(); //获取当前时间的星期索引
            
            for (int index = 1; index <= weekIndex; index++) //从礼拜一到当前星期索引
            {
                weekDays.Add(new HdisWeek()
                {

                    WeekIndex = index,
                    WeekDate = time.AddDays(index - weekIndex).Date,
                    WeekDay = GetLocalWeekDayChs(index)
                });
            }
            for (int index = weekIndex+1; index <=7; index++) //当前星期索引到礼拜天
            {
                weekDays.Add(new HdisWeek()
                {
                    WeekIndex = index,
                    WeekDate = time.AddDays(index - weekIndex).Date,
                    WeekDay = GetLocalWeekDayChs(index)
                });
            }
            return weekDays;
        }


 /// <summary>
        /// 获取该时间的星期索引
        /// </summary>
        /// <param name="time"></param>
        /// <returns></returns>
        public static int WeekDayIndex(this DateTime time)
        {
            var utcIndex = int.Parse(time.DayOfWeek.ToString("D")); //国际索引
            var localIndex = utcIndex == 0 ? 7 : utcIndex; //本地索引
            return localIndex;
        }

        /// <summary>
        /// 格式化中文星期
        /// </summary>
        /// <param name="weekIndex"></param>
        /// <returns></returns>
        private static string GetLocalWeekDayChs(int weekIndex)
        {
            switch (weekIndex)
            {
                case 1:
                    return "周一";
                case 2:
                    return "周二";
                case 3:
                    return "周三";
                case 4:
                    return "周四";
                case 5:
                    return "周五";
                case 6:
                    return "周六";
                case 7:
                    return "周日";
                default:
                    return "未知";
            }
        }
 //
public class HdisWeek
    {
        /// <summary>
        /// 日期格式化
        /// </summary>
        public string WeekDateFormatter=> WeekDate.ToString("yyyy年MM月dd号");

        /// <summary>
        /// 日期
        /// </summary>
        public  DateTime WeekDate { get; set; }

        /// <summary>
        /// 周索引
        /// </summary>
        public  int WeekIndex { get; set; }


        /// <summary>
        /// 日期
        /// </summary>
        public  string WeekDay { get; set; }
    }

//调用

 DateTime.Now.HdsiWeek().First().WeekDate

//第一条结果

2018年07月23号
2018-07-23
1
周一
原文地址:https://www.cnblogs.com/shiruina/p/9354873.html