Tôi có đơn đăng ký cần chạy vào ngày làm việc và trong giờ làm việc.Làm cách nào để kiểm tra xem ngày hiện tại có đang hoạt động vào ngày
Trong cấu hình ứng dụng, tôi đã thiết lập thời gian bắt đầu ở định dạng
Monday-Friday
9:00AM-5:30PM
Bây giờ, tôi có một vấn đề làm thế nào để kiểm tra xem ngày hiện tại nằm trong boundare ngày được (cho thời gian rất dễ dàng - phân tích thời gian với DateTime.ParseExact
và nhánh đơn giản sẽ làm), nhưng tôi không biết cách phân tích ngày.
Tôi đã thử với:
DayOfWeek day = DateTime.Now.DayOfWeek;
if (day >= (DayOfWeek)Enum.Parse(typeof(DayOfWeek), sr.start_day) &&
day <= (DayOfWeek)Enum.Parse(typeof(DayOfWeek), sr.end_day))
{ /* OK */ }
sr.start_day
và sr.end_day
là chuỗi
nhưng vấn đề xảy ra trong thử nghiệm cuối tuần - rõ ràng, trong DayOfWeek
enum
, Chủ nhật là ngày đầu tiên trong tuần (đề cập đến các nhận xét về MSDN page
Tôi cho rằng tôi có thể thực hiện một số bài thể dục với mã hiện tại, nhưng tôi đang tìm kiếm mã có thể đọc được nhiều nhất ailable.
Sửa Xin lỗi vì sự hiểu lầm - ngày làm việc không phải là từ thứ Hai đến thứ Sáu - chúng được định nghĩa như các chuỗi trong tập tin cấu hình, và họ thậm chí có thể từ thứ Sáu đến thứ Bảy - mà phá vỡ mã ban đầu của tôi.
Chỉ cần thêm 7 vào ngày kết thúc nếu ngày đó ít hơn ngày bắt đầu. Tương tự, thêm 7 đến ngày nếu nó nhỏ hơn ngày bắt đầu. –
@ HansPassant, vâng, công trình này! Nếu bạn có thể, hãy đăng câu trả lời và tôi sẽ chọn nó! –
Hãy tiếp tục và đăng mã bạn đã sử dụng và đánh dấu nó làm câu trả lời. –