comment obtenir la date d'hier et de demain en c #


101

J'ai un code:

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

Comment puis-je obtenir le jour, le mois et l'année d'hier et de demain en C #?

Bien sûr, je peux simplement écrire:

DayTommorow = DayNow +1;

mais il peut arriver que demain soit un autre mois ou une autre année. Existe-t-il dans C # des outils intégrés pour découvrir hier et aujourd'hui?


Le problème avec DayNow + 1ou - 1est si c'est le premier du dernier jour du mois cela ne fonctionnera pas. DateTime.Now.Day est juste une représentation entière du jour en cours.
Gary.S

Réponses:


126

Vous pouvez trouver ces informations directement dans la référence API .

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

28
Veuillez publier si possible la partie pertinente du site Web lié au lieu de créer un lien uniquement vers le site Web
JMax

JMax, bien sûr. Le lien est pour la méthode DateTime.AddDays, qui permet d'ajouter / soustraire des jours. Ceci est plus facile à utiliser dans le contexte de la question, par rapport à la méthode DateTime.Add plus générique.
Tabrez

5
... et cela pourrait être la partie détaillée de votre réponse :).
C4d

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

11
Cette réponse prouve à quel point la dénomination est importante.
eomeroff

17

Aujourd'hui :

DateTime.Today

Demain :

DateTime.Today.AddDays(1)

Hier:

DateTime.Today.AddDays(-1)

16

Vous devriez le faire de cette façon, si vous voulez obtenir hier et demain à 00:00:00 heure:

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

Gardez simplement à l'esprit que si vous le faites de cette façon:

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

alors vous obtiendrez l'heure actuelle moins un jour, et pas hier à 00:00:00 heure.




2

L'astuce consiste à utiliser "DateTime" pour manipuler les dates; n'utilisez que des entiers et des chaînes lorsque vous avez besoin d'un "résultat final" à partir de la date.

Par exemple (pseudo code):

  1. Obtenez "DateTime demain = Maintenant + 1"

  2. Déterminez la date, le jour de la semaine, le jour du mois - tout ce que vous voulez - de la date résultante.


1

Pour obtenir "local" hier en UTC.

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

0

Méfiez-vous d'ajouter un fuseau horaire indésirable à vos résultats, surtout si la date va être envoyée via une API Web. Utilisez plutôt UtcNow pour le rendre sans fuseau horaire.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.