2012-02-08 36 views
64

Làm cách nào để nhận được ngày trong tuần ở định dạng số nguyên? Tôi biết ToString sẽ chỉ trả lại một chuỗi.Cách lấy giá trị nguyên của ngày trong tuần

DateTime ClockInfoFromSystem = DateTime.Now; 
int day1; 
string day2; 
day1= ClockInfoFromSystem.DayOfWeek.ToString(); /// it is not working 
day2= ClockInfoFromSystem.DayOfWeek.ToString(); /// it gives me string 
+0

@Joe, tôi không thể định dạng lại mã của anh ấy để đặt mã của anh ấy trong khối mã, tại sao vậy? – uday

+3

Bạn đang gọi 'ToString() 'vậy tại sao bạn mong đợi bất cứ điều gì ngoài một chuỗi? –

+0

@Dave, tôi đã phải tách nó ra khỏi dòng văn bản của câu hỏi, nếu không nó chỉ thụt lề mã ... – Joe

Trả lời

114

Sử dụng

day1 = (int)ClockInfoFromSystem.DayOfWeek; 
+0

nó sẽ trở về 0 cho thứ hai và như vậy? – akshaykumar6

+9

@developer Chủ nhật là 0. http://msdn.microsoft.com/en-us/library/system.dayofweek.aspx –

+31

Nếu bạn muốn thứ hai là 0, chỉ cần thay đổi ngày: 'day1 = (int) (ClockInfoFromSystem .DayOfWeek + 6)% 7' –

6
day1= (int)ClockInfoFromSystem.DayOfWeek; 
+0

@JustinSatyr - FiveTools rõ ràng là chỉ đưa ra một ví dụ. Nó không phải là lỗi của ông, tác giả đã cố gắng thiết lập một giá trị String thành một biến số nguyên. –

+0

@Ramhound: Tôi đã không downvote và tôi đã không chỉ trích. Tôi nghĩ anh ấy đã đọc sai mã. Và dường như tôi đã đúng bởi thực tế là ông đã sửa mã của mình. –

55
int day = (int)DateTime.Now.DayOfWeek; 

Ngày đầu tiên của tuần: Chủ nhật (với giá trị là zero)

37

Nếu bạn muốn thiết lập ngày đầu tiên của tuần tính đến Thứ hai với giá trị số nguyên 1 và Chủ Nhật có giá trị nguyên 7

int day = ((int)DateTime.Now.DayOfWeek == 0) ? 7 : (int)DateTime.Now.DayOfWeek; 
+3

Up-bình chọn là tất cả những người lành mạnh sẽ muốn điều này. ISO 8601 khá rõ ràng về vấn đề này. Thứ hai là ngày 1, Chủ nhật là ngày 7. – Morvael

0
DateTime currentDateTime = DateTime.Now; 
int week = (int) currentDateTime.DayOfWeek; 
4

Hãy thử điều này. Nó sẽ chỉ làm việc tốt:

int week = Convert.ToInt32(currentDateTime.DayOfWeek); 
2

Các cách chính xác để nhận được giá trị số nguyên của một Enum như dayOfWeek như là một chuỗi là:

DayOfWeek.ToString("d") 
+3

Điều này sẽ trả về một 'chuỗi', không phải là' int'. –

0

Một cách khác để có được thứ hai với giá trị số nguyên 1 và chủ nhật với giá trị số nguyên 7

int day = ((int)DateTime.Now.DayOfWeek + 6) % 7 + 1;
Các vấn đề liên quan