Я публикую это как отдельный ответ, так как он действительно не имеет ничего общего с моим другим ответом (который может пригодиться кому-то еще в будущем в другом контексте.)
В качестве альтернативы решению Codeka вы также можете сделать что-то вроде этого (что позволит избежать жесткого кодирования названий en-us day.)
string[] dayNamesNormal = culture.DateTimeFormat.DayNames;
string[] dayNamesShifted = Shift(dayNamesNormal, (int)DayOfWeek.Monday);
// you probably wanna add some error checking here.
// this method shifts array left by a specified number
// of positions, wrapping the shifted elements back to
// end of the array
private static T[] Shift<T>(T[] array, int positions) {
T[] copy = new T[array.Length];
Array.Copy(array, 0, copy, array.Length-positions, positions);
Array.Copy(array, positions, copy, 0, array.Length-positions);
return copy;
}
Я хотел опубликовать это раньше, но я борюсь с умирающим внешним жестким диском ...