@@ -107,7 +107,7 @@ protected override void OnInitialized()
107107 PreviousMonth = Localizer [ nameof ( PreviousMonth ) ] ;
108108 NextMonth = Localizer [ nameof ( NextMonth ) ] ;
109109 Today = Localizer [ nameof ( Today ) ] ;
110- WeekLists = [ .. Localizer [ nameof ( WeekLists ) ] . Value . Split ( ',' ) ] ;
110+ WeekLists = GetWeekList ( ) ;
111111 PreviousWeek = Localizer [ nameof ( PreviousWeek ) ] ;
112112 NextWeek = Localizer [ nameof ( NextWeek ) ] ;
113113 WeekText = Localizer [ nameof ( WeekText ) ] ;
@@ -124,7 +124,7 @@ protected DateTime StartDate
124124 get
125125 {
126126 var d = Value . AddDays ( 1 - Value . Day ) ;
127- d = d . AddDays ( 0 - ( int ) d . DayOfWeek ) ;
127+ d = d . AddDays ( ( int ) FirstDayOfWeek - ( int ) d . DayOfWeek ) ;
128128 return d ;
129129 }
130130 }
@@ -197,6 +197,12 @@ protected int GetWeekCount()
197197 [ Parameter ]
198198 public bool ShowYearButtons { get ; set ; } = true ;
199199
200+ /// <summary>
201+ /// 获得/设置 星期第一天 默认 <see cref="DayOfWeek.Sunday"/>
202+ /// </summary>
203+ [ Parameter ]
204+ public DayOfWeek FirstDayOfWeek { get ; set ; } = DayOfWeek . Sunday ;
205+
200206 /// <summary>
201207 /// 选中日期时回调此方法
202208 /// </summary>
@@ -297,4 +303,12 @@ private BodyTemplateContext GetBodyTemplateContext(DateTime week)
297303 context . Values . AddRange ( Enumerable . Range ( 0 , 7 ) . Select ( i => CreateCellValue ( week . AddDays ( i ) ) ) ) ;
298304 return context ;
299305 }
306+ private List < string > GetWeekList ( )
307+ {
308+ var list = Localizer [ nameof ( WeekLists ) ] . Value . Split ( ',' , StringSplitOptions . RemoveEmptyEntries ) . ToList ( ) ;
309+
310+ // 调整顺序
311+ var firstDayIndex = ( int ) FirstDayOfWeek ;
312+ return [ .. list . Skip ( firstDayIndex ) , .. list . Take ( firstDayIndex ) ] ;
313+ }
300314}
0 commit comments