【问题标题】:how to set date in second textbox according to first textbox date in asp.net如何根据asp.net中的第一个文本框日期在第二个文本框中设置日期
【发布时间】:2018-05-31 11:02:52
【问题描述】:

我正在开发一个 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,但它显示的是 29-May-18。如何解决?

【问题讨论】:

  • 你试过 DateTime.ParseExact("dd/MM/yyyy") 吗?
  • 在所有这些描述中,问题仅仅是ToShortDateString() 没有输出您想要的格式,并且您想要一个日期的自定义输出格式吗? .ToString() 日期包含自定义格式字符串:docs.microsoft.com/en-us/dotnet/standard/base-types/…

标签: c# asp.net


【解决方案1】:

明确说明您的格式,而不是使用 ToShortDateString()。请改用以下内容:

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

【讨论】:

    【解决方案2】:

    试试这个代码:

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

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

    【讨论】:

    • 很好的参考。
    【解决方案3】:

    你在这里做错了几件事:

    • datetime.today 属性为您提供不需要的 DateTime 对象 再次将其转换为 DateTime。
    • 要获取两个日期之间的天数,您无需将总小时数除以 24,只需使用 TotalDaysproperty。
    • 最好使用 Parsing 代替 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");

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-05-19
      • 1970-01-01
      • 1970-01-01
      • 2019-07-25
      • 1970-01-01
      • 2013-04-28
      • 2023-03-29
      • 1970-01-01
      相关资源
      最近更新 更多