Это не странно, перечисление DayOfWeek просто определено как Sunday = 0. Вы должны сделать это самостоятельно, используя DateTimeFormatInfo.FirstDayOfWeek
в System.Globalization
.
Правильный код будет:
CultureInfo ci = new CultureInfo("sv-SE");
int substraction = (int)ci.DateTimeFormat.FirstDayOfWeek;
int dayToGet = 0; //should return monday
var daynames = ci.DateTimeFormat.DayNames;
string day = daynames[dayToGet + substraction >= 7
? (dayToGet + substraction - 7) : dayToGet+substraction];
Имя дня в верхнем регистре зависит от вашей культуры, поэтому, я думаю, в Швеции все строчные, вы можете сделать str.Substring(0,1).ToUpper() + str.Substring(1)
, чтобы получить первый символ.