La ligne de code DateTime d = DateTime.Today;
résulte en 10/12/2011 12:00:00 AM
. J'ai besoin d'ignorer la partie temps lorsque je compare deux dates.
Réponses
Trop de publicités?DateTime
est un DataType qui est utilisé pour stocker à la fois Date
et Time
. Mais il fournit des propriétés pour obtenir le Date
Partie.
Vous pouvez obtenir la partie Date à partir de Date
Propriété.
http://msdn.microsoft.com/en-us/library/system.datetime.date.aspx
DateTime date1 = new DateTime(2008, 6, 1, 7, 47, 0);
Console.WriteLine(date1.ToString());
// Get date-only portion of date, without its time.
DateTime dateOnly = date1.Date;
// Display date using short date string.
Console.WriteLine(dateOnly.ToString("d"));
// Display date using 24-hour clock.
Console.WriteLine(dateOnly.ToString("g"));
Console.WriteLine(dateOnly.ToString("MM/dd/yyyy HH:mm"));
// The example displays the following output to the console:
// 6/1/2008 7:47:00 AM
// 6/1/2008
// 6/1/2008 12:00 AM
// 06/01/2008 00:00
Il n'y a pas de moyen d'"écarter" la composante temporelle.
DateTime.Today
est la même chose que :
DateTime d = DateTime.Now.Date;
Si vous voulez seulement afficher uniquement la partie date, il suffit de le faire - utiliser la fonction ToString
avec la chaîne de format dont vous avez besoin.
Par exemple, en utilisant le chaîne de format standard "D" (spécificateur de format de date longue) :
d.ToString("D");
DateTime d = DateTime.Today.Date;
Console.WriteLine(d.ToShortDateString()); // outputs just date
si vous voulez comparer des dates, sans tenir compte de l'heure, utilisez la fonction DateTime.Year
et DateTime.DayOfYear
propriétés.
extrait de code
DateTime d1 = DateTime.Today;
DateTime d2 = DateTime.Today.AddDays(3);
if (d1.Year < d2.Year)
Console.WriteLine("d1 < d2");
else
if (d1.DayOfYear < d2.DayOfYear)
Console.WriteLine("d1 < d2");