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 hier et demain jour, mois et année en C #?
Bien sûr, je peux juste écrire:
DayTommorow = DayNow +1;
mais il se peut que demain soit un autre mois ou une autre année. Existe-t-il dans C # des outils intégrés permettant de découvrir hier et aujourd'hui?
Vous pouvez trouver cette information directement dans le référence de l'API .
var today = DateTime.Now;
var tomorrow = today.AddDays(1);
var yesterday = today.AddDays(-1);
DateTime tomorrow = DateTime.Now.AddDays(1);
DateTime yesterday = DateTime.Now.AddDays(-1);
Aujourd'hui :
DateTime.Today
Demain :
DateTime.Now.AddDays(1)
Hier:
DateTime.Now.AddDays(-1)
Vous voulez DateTime.Today.AddDays(1)
.
Vous devriez le faire de cette façon, si vous voulez avoir 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
N'oubliez pas 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
vous obtiendrez alors l'heure actuelle moins un jour et non hier à 00:00:00 heure.
Utilisez DateTime.AddDays()
( méthode MSDN Documentation DateTime.AddDays ).
DateTime tomorrow = DateTime.Now.AddDays(1);
DateTime yesterday = DateTime.Now.AddDays(-1);
L'astuce consiste à utiliser "DateTime" pour manipuler les dates; utilisez uniquement des entiers et des chaînes lorsque vous avez besoin d'un "résultat final" à partir de la date.
Par exemple (pseudo code):
Obtenez "DateTime demain = Maintenant + 1"
Déterminez la date, le jour de la semaine, le jour du mois - celui que vous souhaitiez - de la date résultante.
Pour être "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);