簡體   English   中英

如何根據asp.net中的第一個文本框日期在第二個文本框中設置日期

[英]how to set date in second textbox according to first textbox date in asp.net

我正在一個asp.net應用程序上,我有兩個文本框供選擇兩個日期,例如Fromdate和EndDate。 對於兩個格式為dd / MM / yyyy的文本框,我也有兩個壓延擴展器。 如果我使用日歷擴展器在第一個文本框“ txtFromDate”中選擇任何日期,則它將計算出,如果它比今天的日期小至少7天,則第二個文本框將自動設置為第一個文本框日期之后的7天。 如果今天日期和第一個文本框日期之間的差小於7,則第二個文本框應在第二個文本框中顯示今天日期。 為此,我在第一個文本框textchanged事件上使用了以下代碼

DateTime dt1, dt2, dt3;

dt1 = Convert.ToDateTime(txtStartDate.Text);
dt2 = Convert.ToDateTime(DateTime.Today);
dt3 = dt1.AddDays(7);
TimeSpan s = dt2 - dt1;
int x = (int)s.TotalHours;
x = x / 24;
if (x >= 7)
{
    txtEndDate.Text = dt3.ToShortDateString();
}
else
{
    txtEndDate.Text = dt2.ToShortDateString();
}

在這里,如果我選擇22/05/2018,則第二個文本框應顯示29/05/2018,但顯示的是18 May-18。 怎么解決呢?

明確說明您的格式,而不要使用ToShortDateString()。 請改用以下內容:

.ToString("dd/MM/yyyy", CultureInfo.InvariantCulture);

試試這個代碼:

String.Format("{0:MM/dd/yyyy}", YourDate); 

參考: http : //www.csharp-examples.net/string-format-datetime/

您在這里做錯的一些事情:

  • datetime.today屬性為您提供了一個DateTime對象,您無需將其再次轉換為DateTime。
  • 要獲取兩個日期之間的天數,您不需要獲取總小時數,然后將其除以24,可以簡單地使用TotalDays屬性。
  • 最好對Convert.ToDateTime使用解析來避免FormatException

因此,修改后的代碼將如下所示:

var diffInDays = (dt2-dt1).TotalDays;   
if (diffInDays >= 7)
{
     txtEndDate.Text = dt3.ToShortDateString();
}
else
{
     txtEndDate.Text = dt2.ToShortDateString();
}

如果您面臨的問題是txtEndDate顯示的日期格式,則可以像其他答案一樣使用.ToString("Format-here") 例如: txtEndDate.Text = dt2.ToString("dd/MM/yyyy");

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM