2009-08-28 8 views
3

est-il une meilleure façon de rearange lajours de la semaine de trier par le premier jour de travail

DateTimeFormat.DayNames 

acording au

DateTimeFormat.FirstDayOfWeek 

de sorte que si

DateTimeFormat.FirstDayOfWeek = 1 

dayNames containts mon, mar, mer, ...
insted de fils, mon, tue, ...
J'utilise actuellement:

CultureInfo culture = System.Globalization.CultureInfo.CurrentUICulture; 
string[] DayNames = culture.DateTimeFormat.DayNames; 
int FirstDayOfWeek = (int)culture.DateTimeFormat.FirstDayOfWeek; 
int daysInMonth = DateTime.DaysInMonth(year, month); 
string[] tempdays = new string[7]; 
for (int i = 0; i <= DayNames.GetUpperBound(0); i++) 
{ 
    tempdays[i] = DayNames[i == 0 ? FirstDayOfWeek : 
          (i == 6 - FirstDayOfWeek ? 6 : 
          i > 6 - FirstDayOfWeek ? 0 != (6 - (i + (FirstDayOfWeek - 1))) ? 
          (6 - (i + (FirstDayOfWeek - 1))) * -1 : 
          6 - (i + (FirstDayOfWeek - 1)) : i + FirstDayOfWeek)]; 
} 

Répondre

4

Vous avez effectivement mis en œuvre modulo opérateur, vous pouvez simplifier votre expression

tempdays[i] = DayNames[ (FirstDayOfWeek + i) % 7 ]; 
Questions connexes