2012-04-29 186 views
0

我有三个文本框,StartTextbox,EndTextBoxTextbox3,其中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; 
} 

回答

0

如果你想检查months(一int)与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; 
} 
0

您可以通过使用重载的操作得到两个日期之间的月数 - 拿到2个日期之间的时间跨度:

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);