想要在开始日期文本框中添加一年,减去一天,并在结束日期文本框中返回它

时间:2015-04-11 11:14:35

标签: javascript c# jquery asp.net date

我希望当我在开始文本框(TxtStartDate)中输入dd / mm / yyyy中的日期时,它将通过在上面输入的日期中添加一年减去一天来自动填充结束文本框(TxtEndDate),例如,如果用户输入是' 15/04 2014'然后输出将来到2015年4月4日' 请使用javascript,jquery或asp.net c#

提供您的解决方案

我的HTML代码:

  <tr>
  <td></td>
  <td style="text-align: right"><asp:TextBox ID="TxtEndDate" runat="server"    
  Width="177px" AutoPostBack="True" style="height: 22px"></asp:TextBox>   
  </td>
     <td style="text-align: right">end date</td>
   <td style="text-align: right">
     <asp:TextBox ID="TextStartDate" runat="server" Width="177px"  
      AutoPostBack="True"  style="height: 22px"></asp:TextBox></td>
       <td style="text-align: right; direction: rtl;">
        start date
        </td>
         </tr>

我的asp.net c#code

中有两个文本框

2 个答案:

答案 0 :(得分:1)

对于此任务,您可以利用OnTextChanged事件的asp.net文本框控件。要自动生成代码,您可以直接在设计模式中双击txt_Start。要触发此事件,您需要将此AutoPostBack="True"添加到txt_Start请参阅以下内容:

  Start:<asp:TextBox ID="txt_Start" runat="server" AutoPostBack="True" OnTextChanged="txt_Start_TextChanged"></asp:TextBox>
  <asp:Label ID="lbl_wrongdate" runat="server" Text=""></asp:Label>
  <br />
  End: <asp:TextBox ID="txt_End" runat="server"></asp:TextBox>

然后,逻辑非常简单,我认为这是不言自明的:

    protected void txt_Start_TextChanged(object sender, EventArgs e)
    {
        DateTime start = new DateTime();
        //using System.Globalization;
        if (DateTime.TryParseExact(txt_Start.Text, "dd/MM/yyyy", CultureInfo.InvariantCulture, DateTimeStyles.None, out start))
        {
            DateTime end = start.AddYears(1).AddDays(-1);
            txt_End.Text = end.ToString("dd/MM/yyyy");
            lbl_wrongdate.Text = "";
        }
        else
        {
            lbl_wrongdate.Text = "Wrong date format. Allowed formats is dd/mm/yyyy";
            txt_End.Text = "";
        }
    }

在您输入txt_Start的有效日期并按Tab后,您会看到txt_End已自动设置。

答案 1 :(得分:0)

在C#中,它很简单,可以使用date.AddYears()date.Adddays()

首先使用

添加1年
Date dtedate = new Date()
dtedate=txtstartdate.Addyears(1)

然后

减去1天
dtedate1=dtedate.Adddays(-1)

然后分配给控件

txtEnddate=dtedate1

希望这会有所帮助

<强>更新

您可以将代码简化为单行。因此代码将是

Date dtedate = new Date()
dtedate=datetime.parse(txtstartdate.text,"dd/MM/yyyy");
txtEnddate.text=convert.tostring(dtedate.AddYears(1).AddDays(-1));