2012-12-02 16 views
16

mam dzień tygodnia przechowywane w bazie danych, gdzie niedziela = 1, poniedziałek = 2 itd.Czy można bezpiecznie założyć wartość liczbową DayOfWeek?

w zapytaniu z bazy danych, muszę konwertować dzień do System.DayOfWeek.

Według MSDN:

Wartość stałych w tym wyliczenie waha się od DayOfWeek.Sunday do DayOfWeek.Saturday. W przypadku rzutowania na liczbę całkowitą jego wartość wynosi od zera (co oznacza DayOfWeek.Sunday) do sześciu (co oznacza DayOfWeek.Saturday).

Oznacza to, że po wysłaniu zapytania do danych, muszę odjąć 1, zanim skonwertuję wynik na DayOfWeek.

Czy to jest bezpieczne?
Czy muszę się martwić wartościami numerycznymi DayOfWeek zmieniając?

+1

Tak, kiedy jest to udokumentowane jako 'jego wartość waha się od zera do six' –

Odpowiedz

33

Tak, to bezpieczne, nie powinieneś martwić się o zmiany wartości. Oto, jak definiuje się wyliczenie:

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

Jeśli te wartości ulegną zmianie w BCL, wiele kodu zostanie zerwanych.

+12

przepraszam , ale czy jestem jedynym, który jest kompletnie zakłopotany, że zostały one zapisane w kolejności alfabetycznej zamiast cyfrowej i/lub od początku tygodnia (niedziela lub poniedziałek)? –

+2

Prawie nie głosowałem na ciebie, Darin, zmusiłeś mnie do myślenia i to bolało w moim mózgu. Następnym razem, dlaczego nie wymienisz ich w odpowiedniej kolejności, którą potwór! :) –

1

Tak zawsze jest bezpieczne, można wrócić i przód:

return DateTime.Today.AddDays(-1); 

i

return DateTime.Today.AddDays(1); 
Powiązane problemy