wie bekomme ich gestern und morgen datetime in c #


100

Ich habe einen Code:

int MonthNow = System.DateTime.Now.Month;
int YearNow = System.DateTime.Now.Year;
int DayNow = System.DateTime.Now.Day;

Wie kann ich gestern und morgen Tag, Monat und Jahr in C # bekommen?

Natürlich kann ich einfach schreiben:

DayTommorow = DayNow +1;

aber es kann vorkommen, dass morgen ein anderer Monat oder ein anderes Jahr ist. Gibt es in C # integrierte Tools, um dies gestern und heute herauszufinden?


Das Problem mit DayNow + 1oder - 1ist, wenn es der erste oder letzte Tag des Monats ist, funktioniert dies nicht. DateTime.Now.Day ist nur eine ganzzahlige Darstellung des aktuellen Tages.
Gary.S

Antworten:


124

Sie finden diese Informationen direkt in der API-Referenz .

var today = DateTime.Today;
var tomorrow = today.AddDays(1);
var yesterday = today.AddDays(-1);

28
Bitte posten Sie nach Möglichkeit den relevanten Teil der verlinkten Website, anstatt nur auf die Website zu
verlinken

JMax, sicher. Der Link ist für die DateTime.AddDays-Methode, mit der Tage addiert / subtrahiert werden können. Dies ist im Kontext der Frage einfacher zu verwenden als die allgemeinere DateTime.Add-Methode.
Tabrez

5
... und das könnte der detaillierte Teil Ihrer Antwort sein :).
C4d

160
DateTime tomorrow = DateTime.Today.AddDays(1);
DateTime yesterday = DateTime.Today.AddDays(-1);

11
Diese Antwort zeigt, wie wichtig die Benennung ist.
Eomeroff

17

Heute :

DateTime.Today

Morgen :

DateTime.Today.AddDays(1)

Gestern :

DateTime.Today.AddDays(-1)

16

Sie sollten es so machen, wenn Sie gestern und morgen um 00:00:00 Uhr bekommen möchten:

DateTime yesterday = DateTime.Today.AddDays(-1);
DateTime tomorrow = DateTime.Today.AddDays(1); // Output example: 6. 02. 2016 00:00:00

Denken Sie nur daran, wenn Sie es so machen:

DateTime yesterday = DateTime.Now.AddDays(-1);
DateTime tomorrow = DateTime.Now.AddDays(1); // Output example: 6. 02. 2016 18:09:23

dann erhalten Sie die aktuelle Zeit minus einen Tag und nicht gestern um 00:00:00 Uhr.




2

Der Trick besteht darin, "DateTime" zum Bearbeiten von Datumsangaben zu verwenden. Verwenden Sie nur Ganzzahlen und Zeichenfolgen, wenn Sie ab dem Datum ein "Endergebnis" benötigen.

Zum Beispiel (Pseudocode):

  1. Holen Sie sich "DateTime morgen = Jetzt + 1"

  2. Bestimmen Sie Datum, Wochentag, Tag des Monats - was auch immer Sie wollen - des resultierenden Datums.


1

Um gestern in UTC "lokal" zu werden.

  var now = DateTime.Now;
  var yesterday = new DateTime(now.Year, now.Month, now.Day, 0, 0, 0, DateTimeKind.Utc).AddDays(-1);

0

Achten Sie darauf, dass Sie Ihren Ergebnissen keine unerwünschte Zeitzone hinzufügen, insbesondere wenn das Datum über eine Web-API gesendet wird. Verwenden Sie stattdessen UtcNow, um die Zeitzone zu verringern.

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.