So erhalten Sie den ganzzahligen Wert des Wochentags


104

Wie erhalte ich den Wochentag im Ganzzahlformat? Ich weiß, dass ToString nur eine Zeichenfolge zurückgibt.

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, ich konnte seinen Code für die Platzierung seines Codes im Codeblock nicht neu formatieren. Warum ist das so?
— Donnerstag,

4
Sie rufen an ToString(), warum sollten Sie also etwas anderes als eine Zeichenfolge erwarten?
— Brian Rasmussen

@ Dave, ich musste es eine Zeile vom Text der Frage trennen, sonst hat es nur den Code eingerückt ...
— Joe

cool! Ich habe versucht, seinen Code in einen Codeblock zu verwandeln, und das kann ich nicht.
— Donnerstag,

Antworten:



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

Erster Tag der Woche: Sonntag (mit einem Wert von Null)


64

Wenn Sie den ersten Wochentag auf Montag mit dem ganzzahligen Wert 1 und Sonntag auf den ganzzahligen Wert 7 setzen möchten

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

9
Up-Voted, da alle vernünftigen Leute dies wollen würden. ISO 8601 ist in diesem Punkt ziemlich klar. Montag ist Tag 1, Sonntag ist Tag 7.
— Morvael

Wenn die DayOfWeek-Eigenschaft nicht freigegeben wurde, wird am Sonntag Null zurückgegeben. Fast ein Fehler durch die Implementierung der am besten bewerteten Antwort eingeführt. Vielen Dank!
— Breez

6
day1= (int)ClockInfoFromSystem.DayOfWeek;

@JustinSatyr - FiveTools gab eindeutig nur ein Beispiel. Es ist nicht seine Schuld, dass der Autor versucht hat, einen String-Wert auf eine ganzzahlige Variable zu setzen.
— Sicherheitshund

@ Ramhound: Ich habe nicht abgelehnt und nicht kritisiert. Ich dachte, er hätte den Code falsch verstanden. Und anscheinend hatte ich Recht damit, dass er seinen Code korrigierte.
— Devin Burke

5

Versuche dies. Es wird gut funktionieren:

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

2

Der richtige Weg, um den ganzzahligen Wert einer Aufzählung wie DayOfWeek als Zeichenfolge abzurufen, ist:

DayOfWeek.ToString("d")

4
Dies gibt ein string, kein zurück int.
— Danny Beckett

Dies ist Tag des Monats, nicht Tag der Woche
— Fritz

@Fritz nein, ist es nicht, es ist eine Enum-Ganzzahl "als Zeichenfolge", wie ich sagte. Sie werden mit der Datumsformatierung verwechselt, die dies nicht ist.
— Rob Sedgwick

2

Eine andere Möglichkeit, Montag mit ganzzahligem Wert 1 und Sonntag mit ganzzahligem Wert 7 zu erhalten

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

0
DateTime currentDateTime = DateTime.Now;
int week = (int) currentDateTime.DayOfWeek;
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.