如何将整数类型的星期值匹配到对应AbbreviatedDayNames缩写
核心实现逻辑
.NET 中 DayOfWeek 枚举的整数值范围为 0~6,其中 0 对应星期日、1 对应星期一、……、6 对应星期六,和你现有方法返回的 AbbreviatedDayNames 数组的索引顺序完全对齐,直接用日期对应的 DayOfWeek 整数值作为下标取值即可。
代码实现示例
场景1:直接从 DateTime 日期对象获取对应星期短名
public static string GetDayAbbreviationByDate(DateTime date, string cultureCode) { string[] dayNames = GetDayNames(cultureCode); int dayIndex = (int)date.DayOfWeek; return dayNames[dayIndex]; }
场景2:用自定义规则的星期整数值匹配(比如你的数值规则为1=周一、7=周日)
如果你的星期整数值不是标准的DayOfWeek枚举对应值,需要先做索引转换:
public static string GetDayAbbreviationByCustomIndex(int customDayIndex, string cultureCode) { // 校验输入合法性 if (customDayIndex < 1 || customDayIndex > 7) { throw new ArgumentOutOfRangeException(nameof(customDayIndex), "星期整数值需在1~7范围内"); } string[] dayNames = GetDayNames(cultureCode); // 自定义规则转标准索引:7→0(周日),1~6直接对应索引1~6 int standardIndex = customDayIndex == 7 ? 0 : customDayIndex; return dayNames[standardIndex]; }
注意事项
不管对应文化设置的「一周第一天」是周一还是周日,
AbbreviatedDayNames数组的索引顺序永远和DayOfWeek枚举对齐,不需要额外调整索引顺序。
内容的提问来源于stack exchange,提问作者MTplus
相关产品推荐
相关产品推荐

