2012-12-02 21 views
16

Tôi có ngày trong tuần được lưu trữ trong cơ sở dữ liệu, nơi Chủ Nhật = 1, Thứ Hai = 2, v.v.Có an toàn để giả định giá trị số của DayOfWeek không?

Trong truy vấn từ cơ sở dữ liệu, tôi cần chuyển đổi ngày thành System.DayOfWeek.

Theo MSDN:

Giá trị của các hằng số trong liệt kê này dao động từ DayOfWeek.Sunday để DayOfWeek.Saturday. Nếu truyền đến một số nguyên, giá trị của nó dao động từ 0 (cho biết DayOfWeek.Sunday) đến sáu (cho biết DayOfWeek.Saturday).

Điều này có nghĩa là sau khi tôi truy vấn dữ liệu, tôi cần trừ 1 trước khi tôi chuyển kết quả thành DayOfWeek.

Điều này có an toàn không?
Hoặc tôi có cần phải lo lắng về các giá trị số của DayOfWeek thay đổi không?

+1

Vâng, Khi nó được ghi nhận là 'dãy giá trị của nó từ số không đến six' –

Trả lời

33

Có, điều này an toàn, bạn không nên lo lắng về các giá trị thay đổi. Dưới đây là cách xác định enum:

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

Nếu những giá trị đó thay đổi trong BCL, rất nhiều mã sẽ bị hỏng.

+12

Tôi xin lỗi , nhưng tôi là người duy nhất hoàn toàn lúng túng, rằng những điều này đã được viết theo thứ tự chữ cái, thay vì số và/hoặc bắt đầu từ đầu tuần (chủ nhật hoặc thứ hai)? –

+2

Tôi gần như đã bỏ phiếu cho bạn Darin, bạn khiến tôi nghĩ và nó làm tổn thương não tôi. Tiếp theo thời gian, tại sao bạn không liệt kê chúng theo thứ tự thích hợp bạn quái vật! :) –

1

Có luôn an toàn, bạn có thể quay trở lại và phía trước:

return DateTime.Today.AddDays(-1); 

return DateTime.Today.AddDays(1); 
Các vấn đề liên quan