bmanmike39
asked on
How do I compare the dates in text boxes.
How would I write this. I’m trying to compare the dates in two text boxes. This is what I have, what’s wrong with it.
errors: invalid expression
Thanks!
errors: invalid expression
Thanks!
string aa = TextBox1.Text.Trim();
string bb = TextBox2.Text.Trim();
if (aa =< bb)
{
Label6.Text = "Start date can not be earlier than today’s date";
}
however you would be better doing this :
Here is a link explaining DateTime.Compare : http://msdn.microsoft.com/ en-us/libr ary/system .datetime. compare.as px
string aa = TextBox1.Text.Trim();
string bb = TextBox2.Text.Trim();
datetime startDate;
datetime endDate;
startDate = new DateTime();
endDate = new DateTime();
startDate = DateTime.ParseExact(aa, "yyyy-MM-dd HH:mm tt", null);
endDate = DateTime.ParseExact(bb, "yyyy-MM-dd HH:mm tt", null);
if (DateTime.Compare(startDate,endDate) < 0 )
{
Label6.Text = "Start date can not be earlier than today’s date";
}
Here is a link explaining DateTime.Compare : http://msdn.microsoft.com/
Another way of doing this through AJAX is :
Date Formats for Ajax CalendarExtender Control
Format=”MMMM d, yyyy” Result is April 28, 1906
=”dd/MM/yyyy” Result is 23/11/2008
=”MM/dd/yyyy” Result is 12/28/2008
=”dd-MMM-yyyy” Result is 23-Mar-2008
Comparing Two dates
If second textbox1(DespatchOrder) date value is less than to first textbox2(OrderTaken) date value then alert box will
display “Check date values”.This TextBox2_TextChanged event is fired when textbox2 is less than textbox1 date value.
Default.aspx Page: When using ajax controls paste script manager in aspx pages top. Check Date Formats in ajax calender
must be in dd/MM/yyyy
Ajax CalendarExtender1 both PopupButtonID=”TextBox1¿ and TargetControlID=”TextBox1¿
Ajax CalendarExtender2 both PopupButtonID=”TextBox2¿ and TargetControlID=”TextBox2¿
When you click Textbox1 or Textbox2 Calender control will popup you can choose the dates from there
Design Code
<table style=”border: 1px solid #000000; font-family: Arial, Helvetica, sans-serif; font-size: 9pt; background-color:
#E6E6E6¿>
<tr>
<td>OrderTaken</td>
<td>
<asp:TextBox ID=”TextBox1¿ runat=”server”></asp:TextB ox>
<cc1:CalendarExtender ID=”CalendarExtender1¿ runat=”server” Format=”dd/MM/yyyy”
PopupButtonID=”TextBox1¿ TargetControlID=”TextBox1¿ >
</cc1:CalendarExtender>
</td>
</tr>
<tr>
<td>
DespatchOrder</td>
<td><asp:TextBox ID=”TextBox2¿ runat=”server” AutoPostBack=”True”
ontextchanged=”TextBox2_Te xtChanged” ></asp:Tex tBox>
<cc1:CalendarExtender ID=”CalendarExtender2¿ runat=”server” Format=”dd/MM/yyyy”
PopupButtonID=”TextBox2¿ TargetControlID=”TextBox2¿ >
</cc1:CalendarExtender>
</td>
</tr>
</table>
Default.aspx.cs code: Double click in TextBox2
protected void TextBox2_TextChanged(objec t sender, EventArgs e)
{
DateTime a = DateTime.Parse(TextBox1.Te xt);
DateTime b = DateTime.Parse(TextBox2.Te xt);
if (a > b)
{
Response.Write(”<script>al ert(’Check date ranges to OrderTaken and OrderDespatch’);</script>” );
TextBox2.Text=””;
}
}
***Now Run the project Enter Textbox1 value as 09-02-2008
TextBox2 value as 02-02-2008
then textbox changed event fires and popup alert message “check date ranges to orderTaken and orderDespatch”
Note: You can write in this format also javascript alert message
Response.Write(”<script language=’javascript’>”);
Response.Write(”alert(’Ple ase Check date ranges to OrderTaken and OrderDespatch.’);”);
Response.Write(”return false;”);
Response.Write(”<” + “/script>”);
Note: You can compare date formats like above figure but change the ajax calender control formats i.e Format=”dd-MMM-yyyy”
<cc1:CalendarExtender ID=”CalendarExtender1¿ runat=”server” Format=”dd-MMM-yyyy”
PopupButtonID=”TextBox1¿ TargetControlID=”TextBox1¿ >
</cc1:CalendarExtender>
Similarly for calenderExtender2 Format=”dd-MMM-yyyy”
Date Formats for Ajax CalendarExtender Control
Format=”MMMM d, yyyy” Result is April 28, 1906
=”dd/MM/yyyy” Result is 23/11/2008
=”MM/dd/yyyy” Result is 12/28/2008
=”dd-MMM-yyyy” Result is 23-Mar-2008
Comparing Two dates
If second textbox1(DespatchOrder) date value is less than to first textbox2(OrderTaken) date value then alert box will
display “Check date values”.This TextBox2_TextChanged event is fired when textbox2 is less than textbox1 date value.
Default.aspx Page: When using ajax controls paste script manager in aspx pages top. Check Date Formats in ajax calender
must be in dd/MM/yyyy
Ajax CalendarExtender1 both PopupButtonID=”TextBox1¿ and TargetControlID=”TextBox1¿
Ajax CalendarExtender2 both PopupButtonID=”TextBox2¿ and TargetControlID=”TextBox2¿
When you click Textbox1 or Textbox2 Calender control will popup you can choose the dates from there
Design Code
<table style=”border: 1px solid #000000; font-family: Arial, Helvetica, sans-serif; font-size: 9pt; background-color:
#E6E6E6¿>
<tr>
<td>OrderTaken</td>
<td>
<asp:TextBox ID=”TextBox1¿ runat=”server”></asp:TextB
<cc1:CalendarExtender ID=”CalendarExtender1¿ runat=”server” Format=”dd/MM/yyyy”
PopupButtonID=”TextBox1¿ TargetControlID=”TextBox1¿
</cc1:CalendarExtender>
</td>
</tr>
<tr>
<td>
DespatchOrder</td>
<td><asp:TextBox ID=”TextBox2¿ runat=”server” AutoPostBack=”True”
ontextchanged=”TextBox2_Te
<cc1:CalendarExtender ID=”CalendarExtender2¿ runat=”server” Format=”dd/MM/yyyy”
PopupButtonID=”TextBox2¿ TargetControlID=”TextBox2¿
</cc1:CalendarExtender>
</td>
</tr>
</table>
Default.aspx.cs code: Double click in TextBox2
protected void TextBox2_TextChanged(objec
{
DateTime a = DateTime.Parse(TextBox1.Te
DateTime b = DateTime.Parse(TextBox2.Te
if (a > b)
{
Response.Write(”<script>al
TextBox2.Text=””;
}
}
***Now Run the project Enter Textbox1 value as 09-02-2008
TextBox2 value as 02-02-2008
then textbox changed event fires and popup alert message “check date ranges to orderTaken and orderDespatch”
Note: You can write in this format also javascript alert message
Response.Write(”<script language=’javascript’>”);
Response.Write(”alert(’Ple
Response.Write(”return false;”);
Response.Write(”<” + “/script>”);
Note: You can compare date formats like above figure but change the ajax calender control formats i.e Format=”dd-MMM-yyyy”
<cc1:CalendarExtender ID=”CalendarExtender1¿ runat=”server” Format=”dd-MMM-yyyy”
PopupButtonID=”TextBox1¿ TargetControlID=”TextBox1¿
</cc1:CalendarExtender>
Similarly for calenderExtender2 Format=”dd-MMM-yyyy”
DateTime startdate=DateTime.ParseEx act(TextBo x1.Text,"d d/mm/yyyy" ,null);
DateTime enddate = DateTime.ParseExact(TextBo x2.Text, "dd/mm/yyyy", null);
if (enddate > startdate)
{
//process
}
DateTime enddate = DateTime.ParseExact(TextBo
if (enddate > startdate)
{
//process
}
I would suggest you use Datetime picker controls for entering the dates on your form (unless there is a good reason they would not be suitable). By using those it is impossible for the user to enter an incorrect date - with a text box one could enter, by mistake, 30.02.2010 (February never has 30 days)
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
can use .. Convert.ToDateTime() also
go with Kovil's Convert suggestion, just be sure to validate the contents of the boxes first.
ASKER
DateTime startDate = DateTime.ParseExact(TextBo x1.Text, "dd/mm/yyyy", null);
DateTime endDate = DateTime.ParseExact(TextBo x2.Text, "dd/mm/yyyy", null);
if (endDate == startDate)
{
Label6.Text = "End date can not be equal to start date";
}
Error: String was not recognized as a valid DateTime.
DateTime endDate = DateTime.ParseExact(TextBo
if (endDate == startDate)
{
Label6.Text = "End date can not be equal to start date";
}
Error: String was not recognized as a valid DateTime.
>>Error: String was not recognized as a valid DateTime.
That is why I made my earlier comment:
I would suggest you use Datetime picker controls for entering the dates on your form (unless there is a good reason they would not be suitable). By using those it is impossible for the user to enter an incorrect date - with a text box one could enter, by mistake, 30.02.2010 (February never has 30 days)
That is why I made my earlier comment:
I would suggest you use Datetime picker controls for entering the dates on your form (unless there is a good reason they would not be suitable). By using those it is impossible for the user to enter an incorrect date - with a text box one could enter, by mistake, 30.02.2010 (February never has 30 days)
ASKER
Thanks!
if (aa <= bb)