2016-08-03 70 views
0

我試圖根據下面創建的下拉菜單創建if語句。這決定了Time from是在Time To之前還是之後。根據結果​​顯示驗證。時間範圍無效聲明

例如:時間從4:00到時間到4:30。應該可以接受。

但是,如果時間從4:00到時間到3:30。這不應該被接受。

任何想法?

private void BindTime() 
    { 
     // Set the start time (00:00 means 12:00 AM) 
     DateTime StartTime = DateTime.ParseExact("00:00", "HH:mm", null); 
     // Set the end time (23:55 means 11:55 PM) 
     DateTime EndTime = DateTime.ParseExact("23:55", "HH:mm", null); 
     //Set 15 minutes interval 
     TimeSpan Interval = new TimeSpan(0, 15, 0); 
     //To set 1 hour interval 
     //TimeSpan Interval = new TimeSpan(1, 0, 0);   
     ddlTimeFrom.Items.Clear(); 
     ddlTimeTo.Items.Clear(); 
     while (StartTime <= EndTime) 
     { 
      ddlTimeFrom.Items.Add(StartTime.ToShortTimeString()); 
      ddlTimeTo.Items.Add(StartTime.ToShortTimeString()); 
      StartTime = StartTime.Add(Interval); 
     } 
     ddlTimeFrom.Items.Insert(0, new ListItem(" Select ", "0")); 
     ddlTimeTo.Items.Insert(0, new ListItem(" Select ", "0")); 
    } 
+0

將secons中的時間轉換並減去它們。那麼你有區別。取決於什麼減去什麼,你可以決定 – Radinator

+0

在你的while循環中,它應該是ddlTimeTo.Items.Add(EndTime.ToShortTimeString()); – Apollo

回答

1

當你想驗證,使用此功能:

private bool IsSelectionValid() 
{ 
    DateTime fromTime; 
    DateTime toTime; 

    if(!DateTime.TryParse(ddlTimeFrom.SelectedValue, out fromTime) || 
     !DateTime.TryParse(ddlTimeTo.SelectedValue, out toTime)) 
    { 
     return false; 
    } 

    return fromTime < toTime; 
} 

IsSelectionValid會如果FROMTIME不低於TOTIME少給返回FALSE。