Skip to content

Commit b07166b

Browse files
committed
feat: 增加 FirstDayOfWeek 参数
1 parent 4b569c3 commit b07166b

File tree

1 file changed

+16
-2
lines changed

1 file changed

+16
-2
lines changed

src/BootstrapBlazor/Components/Calendar/Calendar.razor.cs

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)