Hi,
I am using calender extender for 2 textboxes allowing user to enter start and end date.. The format is "dd/MM/yyyy".. My code is as below for converting to datetime..
private int duration(string startdate, string enddate)
{
DateTime dt1= DateTime.Parse(startdate);
DateTime dt2= DateTime.Parse(enddate);
//dt1 = Convert.ToDateTime(txtstartdate.Text);
//dt2 = Convert.ToDateTime(txtenddate.Text);
TimeSpan ts = dt2.Subtract(dt1);
int days = ts.Days;
Session["days"] = days.ToString();
return days;
}
protected void txtenddate_TextChanged(object sender, EventArgs e)
{
int projectdays = duration(txtstartdate.Text, txtenddate.Text);
txtduration.Text = Convert.ToString(projectdays);
}
==================
When user selects the date from calender extender say todays date.9/1/2012
it is been taken as 1 september 2012
Loading

Manoj SavaliaPosted Jul 11, 2014, 9:39 AM
var dt = new DateTime(2010, 06, 26); // time is zero by default
string currTime = "19:04:06";//dateTimePicker1.Value.TimeOfDay.ToString();
var tm = TimeSpan.Parse(currTime);
var fullDt = dt + tm;
Anuja PawarPosted Jan 10, 2012, 1:36 AM
Try this
DateTime dt1=DateTime.ParseExact(startdate, "yyyyMMdd", new DateTimeFormatInfo());
B M SuchitraPosted Jan 10, 2012, 12:43 AM
I tried your solution. But still getting this error:
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.FormatException: String was not recognized as a valid DateTime.
Source Error:
Line 176: Line 177: DateTime dt1= DateTime.Parse(Convert.ToDateTime(startdate).ToString("dd/MM/yyyy")); Line 178: DateTime dt2 = DateTime.Parse(Convert.ToDateTime(enddate).ToString("dd/MM/yyyy")); Line 179: //dt1 = Convert.ToDateTime(txtstartdate.Text); Line 180: //dt2 = Convert.ToDateTime(txtenddate.Text);Mayur GujrathiPosted Jan 9, 2012, 8:23 AM
Pass your date in string to sql server and try the following
CONVERT(VARCHAR,CONVERT(DATETIME,stringdate,103),106)+'23:59:59'
Satyapriya NayakPosted Jan 9, 2012, 8:02 AM
private int duration(string startdate, string enddate)
{
DateTime dt1 = Convert.ToDateTime(Convert.ToDateTime(txtstartdate.Text).ToString("dd/MM/yyyy"));
DateTime dt2 = Convert.ToDateTime(Convert.ToDateTime(txtenddate.Text).ToString("dd/MM/yyyy"));
TimeSpan ts = dt2.Subtract(dt1);
Response.Write(ts.Days);
int days = ts.Days;
Session["days"] = days.ToString();
return days;
}
protected void txtenddate_TextChanged(object sender, EventArgs e)
{
int projectdays = duration(txtstartdate.Text, txtenddate.Text);
TextBox1.Text = Convert.ToString(projectdays);
}
Thanks
Satyapriya NayakPosted Jan 9, 2012, 7:39 AM
@Suthish is correct.
private int duration(string startdate, string enddate)
{
DateTime dt1 = DateTime.Parse(Convert.ToDateTime(txtstartdate.Text).ToString("dd/MM/yyyy"));
DateTime dt2 = DateTime.Parse(Convert.ToDateTime(txtenddate.Text).ToString("dd/MM/yyyy"));
TimeSpan ts = dt2.Subtract(dt1);
Response.Write(ts.Days);
int days = ts.Days;
Session["days"] = days;
return days;
}
protected void txtenddate_TextChanged(object sender, EventArgs e)
{
int projectdays = duration(txtstartdate.Text, txtenddate.Text);
TextBox1.Text = Convert.ToString(projectdays);
}
Thanks
Suthish NairPosted Jan 9, 2012, 7:24 AM
AartiPosted Jan 9, 2012, 7:11 AM
try this
private int duration(string startdate, string enddate)
{
DateTime dt1 = DateTime.Parse(startdate);
DateTime dt2 = DateTime.Parse(enddate);
dt1 = DateTime.Parse(textBox1.Text);
MessageBox.Show("" + dt1.ToString("U"));
dt2 = DateTime.Parse(textBox2.Text);
MessageBox.Show("" + dt2.ToString("U"));
TimeSpan ts = dt2.Subtract(dt1);
int days = ts.Days;
//Session["days"] = days.ToString();
return days;
}
protected void textBox2_TextChanged(object sender, EventArgs e)
{
int projectdays = duration(textBox1.Text, textBox2.Text);
textBox3.Text = Convert.ToString(projectdays);
}
Jignesh TrivediPosted Jan 9, 2012, 6:30 AM
your date control is "calender" build in asp .net control. right?
calender control has one property called "SelectedDate" to retrieve text in calender control in datetime format.
please try this property and pass your argument "duration" function must be datetime format insted of string.
private int duration(DateTime startdate, DateTime enddate)
{
....
....
}
hope this help.
B M SuchitraPosted Jan 9, 2012, 6:13 AM
I hope i am in asp.net forum only.. Yes i am.. I am working on VS2008
AartiPosted Jan 9, 2012, 6:02 AM
I have given code in Silverlight.
You didnt mention ASP.Net in your thread
For ASP.NET( DATE PICKER)
refer below links:
http://www.dotnetfunda.com/articles/article746-how-to-create-a-date-picker-in-aspnet.aspx
http://www.codeproject.com/KB/webforms/datepicker.aspx
B M SuchitraPosted Jan 9, 2012, 5:53 AM
I dont understand where is DatePicker in asp.net?
AartiPosted Jan 9, 2012, 5:46 AM
Hi,
Use datepicker instead of text boxes
Try with below code:
private int duration( )
{
DateTime dt1;
DateTime dt2 ;
dt1 = Convert.ToDateTime(datePicker1.Text);
MessageBox.Show("" + dt1.ToString("U"));
dt2 = Convert.ToDateTime(datePicker2.Text);
MessageBox.Show("" + dt2.ToString("U"));TimeSpan ts = dt2.Subtract(dt1);
int days = ts.Days;
//Session["days"] = days.ToString();
return days;
}
private void button1_Click(object sender, RoutedEventArgs e)
{
Int32 dd = duration();
MessageBox.Show("" + dd);
}
B M SuchitraPosted Jan 9, 2012, 5:38 AM
Ofcourse Calender extender is available only in asp.net ajax as i know.. But what is the solution?
Jignesh TrivediPosted Jan 9, 2012, 4:47 AM
date format is depend on Current culture, so you have two way to find out duretion.
1) calculate culture free. i.e. "duration" function take arrgument as date insted of string.
2) you forcely convert to dd/mm/yyyy format.
are you using asp.net?
hope this help