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

@ 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)


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;

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;

@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);

3

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

DayOfWeek.ToString("d")

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;

0
DateTime currentDateTime = DateTime.Now;
int week = (int) currentDateTime.DayOfWeek;
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.