@@ -107,7 +107,7 @@ protected override void OnInitialized()
107
107
PreviousMonth = Localizer [ nameof ( PreviousMonth ) ] ;
108
108
NextMonth = Localizer [ nameof ( NextMonth ) ] ;
109
109
Today = Localizer [ nameof ( Today ) ] ;
110
- WeekLists = [ .. Localizer [ nameof ( WeekLists ) ] . Value . Split ( ',' ) ] ;
110
+ WeekLists = GetWeekList ( ) ;
111
111
PreviousWeek = Localizer [ nameof ( PreviousWeek ) ] ;
112
112
NextWeek = Localizer [ nameof ( NextWeek ) ] ;
113
113
WeekText = Localizer [ nameof ( WeekText ) ] ;
@@ -124,7 +124,7 @@ protected DateTime StartDate
124
124
get
125
125
{
126
126
var d = Value . AddDays ( 1 - Value . Day ) ;
127
- d = d . AddDays ( 0 - ( int ) d . DayOfWeek ) ;
127
+ d = d . AddDays ( ( int ) FirstDayOfWeek - ( int ) d . DayOfWeek ) ;
128
128
return d ;
129
129
}
130
130
}
@@ -197,6 +197,12 @@ protected int GetWeekCount()
197
197
[ Parameter ]
198
198
public bool ShowYearButtons { get ; set ; } = true ;
199
199
200
+ /// <summary>
201
+ /// 获得/设置 星期第一天 默认 <see cref="DayOfWeek.Sunday"/>
202
+ /// </summary>
203
+ [ Parameter ]
204
+ public DayOfWeek FirstDayOfWeek { get ; set ; } = DayOfWeek . Sunday ;
205
+
200
206
/// <summary>
201
207
/// 选中日期时回调此方法
202
208
/// </summary>
@@ -297,4 +303,12 @@ private BodyTemplateContext GetBodyTemplateContext(DateTime week)
297
303
context . Values . AddRange ( Enumerable . Range ( 0 , 7 ) . Select ( i => CreateCellValue ( week . AddDays ( i ) ) ) ) ;
298
304
return context ;
299
305
}
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
+ }
300
314
}
0 commit comments