2012-12-02 12 views
16

ho il giorno della settimana memorizzati in un database, dove Domenica = 1, Lunedi = 2 eccÈ sicuro assumere il valore numerico di DayOfWeek?

In una query dal database, ho bisogno di convertire il giorno per System.DayOfWeek.

Secondo MSDN:

Il valore delle costanti in questa enumerazione varia da DayOfWeek.Sunday a DayOfWeek.Saturday. Se viene eseguito il cast su un numero intero, il suo valore varia da zero (che indica DayOfWeek.Sunday) a sei (che indica DayOfWeek.Saturday).

Ciò significa che dopo aver richiesto i dati, devo sottrarre 1 prima di convertire il risultato in DayOfWeek.

È sicuro?
O devo preoccuparmi che i valori numerici di DayOfWeek cambino?

+1

Sì, quando è documentato come 'i suoi campi di valori da zero a six' –

risposta

33

Sì, questa cassaforte, non dovresti preoccuparti dei valori che cambiano. Ecco come l'enumerazione si definisce:

public enum DayOfWeek 
{ 
    Sunday = 0, 
    Monday = 1, 
    Tuesday = 2, 
    Wednesday = 3, 
    Thursday = 4, 
    Friday = 5, 
    Saturday = 6 
} 

Se quei valori cambiano nel BCL, un sacco inferno di un codice si romperà.

+12

mi dispiace , ma sono l'unico completamente perplesso, che sono stati scritti in ordine alfabetico, anziché numerico e/o a partire dall'inizio della settimana (domenica o lunedì)? –

+2

Ho quasi votato Darin, mi hai fatto pensare e mi ha fatto male al cervello. La prossima volta, perché non li elenchi in un vero ordine di mostri! :) –

1

Sì sempre sicuro, si può tornare indietro e frontale:

return DateTime.Today.AddDays(-1); 

e

return DateTime.Today.AddDays(1); 
Problemi correlati