2012-04-29 7 views
0

У меня есть три текстовые поля, StartTextbox, EndTextBox и Textbox3, где 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 и преобразовать его в a 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);