我有两个日期:
DateTime date_of_submission = Convert.ToDateTime(DateTime.Now.ToString("MM/dd/yyyy"));
DateTime _effective_date = Convert.ToDateTime(TextBox32.Text);
现在,自提交之日起,生效日期不得超过90天。
我该如何进行比较?
我想到的一种方法是将天数转换为字符串,然后比较dd,mm,yyyy并查看两个日期是否在90天之内。但我相信必须有一个更好的解决方案。
答案 0 :(得分:24)
您可以减去两个日期,然后获得TimeSpan:
TimeSpan difference = _effective_date - date_of_submission;
if(difference.TotalDays > 90)
{
// Bingo!
}
答案 1 :(得分:4)
var days = (_effective_date - date_of_submission).Days;
答案 2 :(得分:3)
像...一样的东西。
TimeSpan difference = _effective_date - date_of_submission;
double days = difference.TotalDays;
if (days > 0 && days <= 90)
{
//valid
}
答案 3 :(得分:1)
您可以正常比较两个日期时间值。
因此,您可以执行以下操作: -
if(date_of_effective_date.CompareTo(date_of_submission_date.AddDays(90)) <= 0)
{
//Correct
}
答案 4 :(得分:0)
这是比较日期时间的示例。你可以根据你的要求改变
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”";
}
答案 5 :(得分:0)
虽然有几种有效的解决方案,但它可能是未来搜索者的一种
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");