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.