J'ai deux dates:
DateTime date_of_submission = Convert.ToDateTime(DateTime.Now.ToString("MM/dd/yyyy"));
DateTime _effective_date = Convert.ToDateTime(TextBox32.Text);
Désormais, la date d'effet ne peut pas être supérieure à 90 jours à compter de la date de soumission.
Comment puis-je faire cette comparaison?
Une méthode qui me vient à l’esprit est une conversion naïve des dates avec des chaînes, puis de comparer jj, mm, aaaa et de vérifier si les deux dates se trouvent à moins de 90 jours l’une de l’autre. Mais je crois qu'il doit y avoir une meilleure solution que celle.
Vous pouvez soustraire deux dates et obtenir un TimeSpan :
TimeSpan difference = _effective_date - date_of_submission;
if(difference.TotalDays > 90)
{
// Bingo!
}
var days = (_effective_date - date_of_submission).Days;
Quelque chose comme...
TimeSpan difference = _effective_date - date_of_submission;
double days = difference.TotalDays;
if (days > 0 && days <= 90)
{
//valid
}
Vous pouvez comparer deux valeurs datetime l'une à l'autre comme vous le faites normalement.
Donc, vous pouvez faire ce qui suit: -
if(date_of_effective_date.CompareTo(date_of_submission_date.AddDays(90)) <= 0)
{
//Correct
}
Bien qu'il existe plusieurs solutions efficaces, il pourrait être une solution pour les futurs chercheurs
DateTime date_of_submission = Convert.ToDateTime(DateTime.Now.ToString("MM/dd/yyyy"));
DateTime _effective_date = Convert.ToDateTime(TextBox32.Text);
DateTime lastPossibleEffectiveDate = _effective_date.AddDays(90);
int result = DateTime.Compare(_effective_date,lastPossibleEffectiveDate);
if (result <= 0)
Console.WriteLine("Valid Date");
else if (result > 0 )
Console.WriteLine("Not Valid effective date");
Ceci est un exemple pour comparer datetime. vous pouvez changer selon vos besoins
DateTime dtFromDate = DateTime.ParseExact(TextBoxFromDate.Text, "dd/MM/yyyy",
CultureInfo.InvariantCulture);
DateTime dtToDate = DateTime.ParseExact(TextBoxToDate.Text, "dd/MM/yyyy",
CultureInfo.InvariantCulture);
TimeSpan difference = dtFromDate - dtToDate;
double days = difference.TotalDays;
if (days > 0)
{
DivFormError.InnerText = "“From Date” cannot be greater than “To Date”";
}