我真的很想得到一些关于我一直面临的这个问题的指导。我正试图从文本框中找出两个日期之间的区别。
protected void Button1_Click(object sender, EventArgs e)
{
a = TextBox1.Text.ToString().Trim();
b = TextBox2.Text.ToString().Trim();
DateTime c = new DateTime();
DateTime d = new DateTime();
c = Convert.ToDateTime(a);
d = Convert.ToDateTime(b);
System.TimeSpan diffr = d - c;
Response.Write(diffr.Days);
}
以上是我在按钮点击事件上写的代码。问题是,代码返回的差异是错误的。
即,如果要找到2013年2月12日和2013年2日11日之间的差异,而不是返回1代码返回30。类似地,2013年2月12日和2013年2日10日之间的差异将被发现,而不是返回2代码返回61。
我正在使用Jquery DatePicker来选择日期!请帮忙,因为我的所有搜索都没有找到任何解决方案。
在执行子操作之前,您应该将日期格式转换为dd/mm/yyyy。这是你的最终代码-
protected void Button1_Click(object sender, EventArgs e)
{
string a, b;
a = TextBox1.Text.ToString().Trim();
b = TextBox2.Text.ToString().Trim();
DateTime c = new DateTime();
DateTime d = new DateTime();
c = Convert.ToDateTime(a);
d = Convert.ToDateTime(b);
DateTime to_datetime = DateTime.ParseExact(a, "dd/MM/yyyy",
System.Globalization.CultureInfo.InvariantCulture);
DateTime from_datetime = DateTime.ParseExact(b, "dd/MM/yyyy",
System.Globalization.CultureInfo.InvariantCulture);
System.TimeSpan diffr = to_datetime - from_datetime;
Response.Write(diffr.Days);
}
唯一的问题是日期的格式
正如你所写的,它显示的是月份差异,而不是日期差异
请尝试使用datetime.parseexact并指定您的格式
示例:-
string poop = "2005-12-14T14:35:32.1700000-07:00";
DateTime poo = DateTime.ParseExact(poop,"yyyy-MM-ddTHH:mm:ss.fffffffzzz",
System.Globalization.CultureInfo.InvariantCulture);
在您的情况下
string sDate1=TextBox1.Text.ToString().Trim();
string sDate2=TextBox1.Text.ToString().Trim();
DateTime dt1= DateTime.ParseExact(sDate1,"MM-dd-yyyy",
System.Globalization.CultureInfo.InvariantCulture);
DateTime dt2= DateTime.ParseExact(sDate2,"MM-dd-yyyy",
System.Globalization.CultureInfo.InvariantCulture);
System.TimeSpan diffr =dt2 - dt1;
Response.Write(diffr.Days);
它应该起作用。
您可以将jQuery日期选择器的日期格式更改为
$("#txtDate.datepicker").datepicker({ dateFormat: 'mm-dd-yy' });
在jQuery中,您可以将迄今为止的测试解析为
var dateInJs = $.datepicker.parseDate('mm-dd-yy', $('#txtDate.datepicker').val());
或者在。NET中,您可以将"dd-MM-yyyy"格式的日期解析为
DateTime.ParseExact(txtDate.Text, "dd/MM/yyyy", System.Globalization.CultureInfo.InvariantCulture);
也可以在中使用CultureInfo。NET类
DateTime Date = DateTime.Parse(txtDate.Text, System.Globalization.CultureInfo.CreateSpecificCulture("hi-IN"));
也许您可以使用TimeSpan
:
DateTime startTime = '';
DateTime endTime = '';
TimeSpan span = endTime.Subtract( startTime );
接下来您可以使用span.Seconds, span.Days
。。。etc
我认为这个问题是由于您的计算机日期时间格式设置造成的。请将您的计算机日期时间格式更改为dd/MM/yyyy格式,然后重试。