差异日期计算

时间:2012-04-29 05:54:54

标签: asp.net

我有三个文本框,StartTextboxEndTextBoxTextbox3,其中Textbox3包含No of Month。现在我想要根据No of Month检查开始日期和结束日期的区别。

以下是自定义验证功能:

protected void ValidateDuration(object sender, ServerValidateEventArgs e)
{
    DateTime start = DateTime.Parse(StartTextBox.Text);
    DateTime end = DateTime.Parse(EndTextBox.Text);

    int months = (end.Month - start.Month) + 12 * (end.Year - start.Year);

    e.IsValid = months <= TextBox3;
}

2 个答案:

答案 0 :(得分:0)

如果您要检查monthsint)的值为TextBox3,则必须先将该值设为string并且将其转换为int。例如:

protected void ValidateDuration(object sender, ServerValidateEventArgs e)
{
    DateTime start = DateTime.Parse(StartTextBox.Text);
    DateTime end = DateTime.Parse(EndTextBox.Text);

    int months = (end.Month - start.Month) + 12 * (end.Year - start.Year);
    int noOfMonth = int.Parse(TextBox3.Text);

    e.IsValid = months <= noOfMonth;
}

答案 1 :(得分:0)

您可以使用重写操作获取两个日期之间的月数 - 以获得两个日期之间的时间跨度:

    DateTime date1 = new DateTime();
    DateTime date2 = new DateTime();

    date1 = DateTime.Now;
    date2 = DateTime.Now.AddMonths(4);

    TimeSpan months = date2 - date1;

   Console.WriteLine(months.Days / 30);

此代码段将显示4个月

代码:

e.IsValid = months <= Int32.TryParse(TextBox3.Text);