/// <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
周一