2012-04-29 251 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);