J'ai deux dates. Une date est entrée et l'autre est DateTime.Now
. Je les ai dans mm/dd/yyyy
_ format, il peut même s'agir également du format m/j/aa. Les deux dates sont nullables i.e, le type de données est DateTime?
, puisque je peux passer à null également en entrée. Maintenant, je veux comparer les deux dates uniquement avec mm/dd/yyyy
ou m/d/yy
_ format.
Si vous avez vos dates dans les variables DateTime, elles n'ont pas un format .
Vous pouvez utiliser la propriété Date
pour renvoyer une valeur DateTime avec la partie heure définie sur minuit. Donc, si vous avez:
DateTime dt1 = DateTime.Parse("07/12/2011");
DateTime dt2 = DateTime.Now;
if(dt1.Date > dt2.Date)
{
//It's a later date
}
else
{
//It's an earlier or equal date
}
Si vous avez une date dans la variable DateTime
, alors c'est un objet DateTime
et ne contient aucun format. Les dates formatées sont exprimées sous la forme string
lorsque vous appelez DateTime.ToString
méthode et fournir le format en elle.
Disons que vous avez deux variables DateTime
, vous pouvez utiliser la méthode de comparaison pour la comparaison,
DateTime date1 = new DateTime(2009, 8, 1, 0, 0, 0);
DateTime date2 = new DateTime(2009, 8, 2, 0, 0, 0);
int result = DateTime.Compare(date1, date2);
string relationship;
if (result < 0)
relationship = "is earlier than";
else if (result == 0)
relationship = "is the same time as";
else
relationship = "is later than";
Extrait de code extrait de msdn .
Tout d'abord, comprenez que les objets DateTime
ne sont pas formatés. Ils stockent simplement l'année, le mois, le jour, l'heure, la minute, la seconde, etc. sous forme de valeur numérique et la mise en forme se produit lorsque vous souhaitez le représenter sous forme de chaîne. Vous pouvez comparer les objets DateTime
sans les formater.
Pour comparer une date saisie avec DateTime.Now
, vous devez d’abord analyser l’entrée en une date, puis comparer uniquement les parties Année/Mois/Jour:
DateTime inputDate;
if(!DateTime.TryParse(inputString, out inputDate))
throw new ArgumentException("Input string not in the correct format.");
if(inputDate.Date == DateTime.Now.Date) {
// Same date!
}