Cara mendapatkan nilai integer hari dalam seminggu

104

Bagaimana cara mendapatkan hari dalam seminggu dalam format integer? Saya tahu ToString hanya akan mengembalikan string.

DateTime ClockInfoFromSystem = DateTime.Now;
int day1;
string day2;
day1= ClockInfoFromSystem.DayOfWeek.ToString(); /// it is not working
day2= ClockInfoFromSystem.DayOfWeek.ToString(); /// it gives me string
akshaykumar6
sumber
@ Joe, saya tidak dapat memformat ulang kodenya karena menempatkan kodenya di blok kode, mengapa demikian?
uday
4
Anda menelepon ToString()jadi mengapa Anda mengharapkan apa pun selain string?
Brian Rasmussen
@ Dave, saya harus memisahkannya satu baris dari teks pertanyaan, atau hanya menjorokkan kode ...
Joe
keren! Saya mencoba membuat kodenya menjadi blok kode & saya tidak mengizinkannya.
uday

Jawaban:

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

Hari pertama dalam seminggu: Minggu (dengan nilai nol)

peroija
sumber
65

Jika Anda ingin menetapkan hari pertama dalam seminggu menjadi Senin dengan nilai integer 1 dan Sunday dengan nilai integer 7

int day = ((int)DateTime.Now.DayOfWeek == 0) ? 7 : (int)DateTime.Now.DayOfWeek;
Martin Sansone - MiOEE
sumber
9
Dipilih karena semua orang waras menginginkan ini. ISO 8601 cukup jelas pada intinya. Senin adalah hari 1, Minggu adalah hari 7.
Morvael
Tidak merilis properti DayOfWeek akan mengembalikan nol pada hari Minggu. Hampir memperkenalkan bug dengan menerapkan jawaban pilihan teratas. Terima kasih!
semoga
6
day1= (int)ClockInfoFromSystem.DayOfWeek;
FiveTools
sumber
@JustinSatyr - FiveTools jelas-jelas hanya memberi contoh. Ini bukan salahnya penulis mencoba untuk mengatur nilai String ke variabel integer.
Security Hound
@Ramhound: Saya tidak downvote dan saya tidak mengkritik. Saya pikir dia salah membaca kode. Dan ternyata saya benar dengan fakta bahwa dia mengoreksi kodenya.
Devin Burke
5

Coba ini. Ini akan bekerja dengan baik:

int week = Convert.ToInt32(currentDateTime.DayOfWeek);
RaviKant Hudda
sumber
3

Cara yang benar untuk mendapatkan nilai integer dari Enum seperti DayOfWeek sebagai string adalah:

DayOfWeek.ToString("d")
Rob Sedgwick
sumber
4
Ini akan mengembalikan a string, bukan int.
Danny Beckett
Ini adalah hari dalam sebulan bukan hari dalam seminggu
Fritz
@Fritz tidak, itu bukan bilangan bulat enum "sebagai string" seperti yang saya katakan. Anda menjadi bingung dengan format tanggal yang bukan ini.
Rob Sedgwick
2

Cara lain untuk mendapatkan hari Senin dengan nilai integer 1 dan Sunday dengan nilai integer 7

int hari = ((int) DateTime.Now.DayOfWeek + 6)% 7 + 1;
Ruslan Hayduk
sumber
0
DateTime currentDateTime = DateTime.Now;
int week = (int) currentDateTime.DayOfWeek;
Michael Murphy
sumber