2014-09-11 22 views
0

就像在我的問題中,我有兩個日曆要由用戶選擇,我想要總選定日期和將顯示在標籤如何獲得從asp.net中的2個日曆中選擇的總天數

用戶必須選擇lstdate日曆中的開始日期和lenddate日曆中的結束日期。

private void ValidateDate() 
{ 
    if (lstartdate.Text == "" || lenddate.Text == "") 
    { 
     lwarndate.Visible = true; 
     lwarndate.Text = "Dates required"; 
    } 

    if (lstartdate.Text != "" || lenddate.Text != "") 
    { 
     if (cstart.SelectedDate > cend.SelectedDate) 
     { 
      lwarndate.Visible = true; 
      lwarndate.Text = "Start date must be earlier than end date!"; 
     } 
     if (cstart.SelectedDate <= cend.SelectedDate) 
     { 
      lwarndate.Visible = false; 
     } 
     if (cend.SelectedDate != null && cstart.SelectedDate != null) 
     { 
      Double Value; 
      if (cend.SelectedDate >= cstart.SelectedDate) 
       Value = (cend.SelectedDate - cstart.SelectedDate).TotalDays; 
      else 
       Value = (cend.SelectedDate - cstart.SelectedDate).TotalDays; 
      total.Text = // ? 
     } 
    } 
} 

我不確定代碼安排是否正確。做幫助和TQ :)

回答

0

TRY喜歡這個

 DateTime DtF = ceFromDate.SelectedDate.Value; 
     DateTime D1T = ceToDate.SelectedDate.Value; 

     double dd = (DtF - D1T).TotalDays; 

     total.Text = dd.ToString(); 
+0

謝謝!它的工作:) – nightingale 2014-09-13 03:24:23

+0

@nightingale你歡迎 – 2014-09-13 04:56:54

+0

問題,如果用戶只選擇1天的例子16/09至16/09。但輸出total.text應用了0天。它應該是1天適用。我可以在哪裏添加代碼? – nightingale 2014-09-15 02:16:05

0

下面是簡單的方法,兩個日期

class Program 
    { 
     static void Main(string[] args) 
     { 
      System.DateTime dtTodayNoon = new System.DateTime(2006, 9, 13, 12, 0, 0); 
      System.DateTime dtTodayMidnight = new System.DateTime(2006, 9, 13, 0, 0, 0); 
      System.TimeSpan diffResult = dtTodayNoon.Subtract(dtYestMidnight); 
      Console.WriteLine("Yesterday Midnight - Today Noon = " + diffResult.Days); 
      Console.WriteLine("Yesterday Midnight - Today Noon = " + diffResult.TotalDays); 
      Console.ReadLine(); 
     } 
    } 

Source

你需要實現它自己之間得到不同..

0

轉換兩者之間的區別約會到TimeSpan中,然後獲取該TimeSpan的天數並將其設置爲您的文本值。

private void ValidateDate() 
{ 
    if (lstartdate.Text == "" || lenddate.Text == "") 
    { 
     lwarndate.Visible = true; 
     lwarndate.Text = "Dates required"; 
    } 

    if (lstartdate.Text != "" || lenddate.Text != "") 
    { 
     if (cstart.SelectedDate > cend.SelectedDate) 
     { 
      lwarndate.Visible = true; 
      lwarndate.Text = "Start date must be earlier than end date!"; 
     }else{ 
      lwarndate.Visible = false; 
     } 
     if (cend.SelectedDate != null && cstart.SelectedDate != null) 
     { 
      TimeSpan duration = DateTime.Parse(cend.SelectedDate).Subtract(DateTime.Parse(cstart.SelectedDate)); 
      total.Text = duration.Days.ToString(); 
     } 
    } 
} 
+0

你需要寫total.Text = duration.Days.ToString(); – 2014-09-11 07:36:31

+0

錯誤1'System.DateTime.Parse(string)'的最佳重載方法匹配有一些無效參數。錯誤2參數'1':無法從'System.Web.UI.WebControls.Calendar'轉換爲'字符串'。錯誤3'System.DateTime.Parse(string)'的最佳重載方法匹配有一些無效參數。錯誤4參數'1':無法從'System.Web.UI.WebControls.Calendar'轉換爲'字符串'。 – nightingale 2014-09-11 08:28:35

+0

對不起,不知道那些值在哪裏。它們是WebControls.Calendars,因此您必須獲取選擇的值。更新後。 – Sander 2014-09-11 08:30:13

相關問題