Cách lấy giá trị nguyên của ngày trong tuần


104

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

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

@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

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

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

mát mẻ! Tôi đã cố gắng tạo mã của anh ấy vào codeblock và nó không cho phép tôi làm.
Uday

Câu trả lời:



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

Ngày đầu tuần: Chủ nhật (với giá trị bằng 0)


64

Nếu bạn muốn đặt ngày đầu tiên trong tuần thành thứ Hai với giá trị nguyên 1 và Chủ nhật với giá trị nguyên 7

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

9
Được bình chọn cao như 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ề điểm này. Thứ Hai là ngày 1, Chủ Nhật là ngày 7.
Morvael

Không phát hành thuộc tính DayOfWeek sẽ trả về 0 vào chủ nhật. Gần như đã giới thiệu một lỗi bằng cách triển khai câu trả lời được bình chọn hàng đầu. Cảm ơn!
breez

6
day1= (int)ClockInfoFromSystem.DayOfWeek;

@JustinSatyr - FiveTools rõ ràng chỉ đưa ra một ví dụ. Đó không phải là lỗi của anh ấy, tác giả đã cố gắng đặt giá trị Chuỗi thành một biến số nguyên.
Security Hound

@Ramhound: Tôi không phản đối và tôi không chỉ trích. Tôi nghĩ anh ấy đã đọc sai mã. Và rõ ràng là tôi đã chính xác bởi thực tế là anh ấy đã sửa mã của mình.
Devin Burke

5

Thử cái này. Nó sẽ chỉ làm việc tốt:

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

2

Cách chính xác để nhận giá trị nguyên của một Enum chẳng hạn như DayOfWeek dưới dạng một chuỗi là:

DayOfWeek.ToString("d")

4
Điều này sẽ trả về a string, không phải an int.
Danny Beckett

Đây là ngày trong tháng không phải ngày trong tuần
Fritz

@Fritz không, không, nó là một số nguyên enum "dưới dạng một chuỗi" như tôi đã nói. Bạn đang bối rối với định dạng ngày tháng mà điều này không phải.
Rob Sedgwick

2

Một cách khác để lấy thứ Hai với giá trị nguyên 1 và Chủ nhật với giá trị nguyên 7

int day = ((int) DateTime.Now.DayOfWeek + 6)% 7 + 1;

0
DateTime currentDateTime = DateTime.Now;
int week = (int) currentDateTime.DayOfWeek;
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.