Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
asp.net中的日期比较_Asp.net_Date - Fatal编程技术网

asp.net中的日期比较

asp.net中的日期比较,asp.net,date,Asp.net,Date,我有两个文本框,我用日历填充它们,也就是说,我用字符串格式将日期输入文本框 i、 estring startdate=txtstartdate.text i、 estring enddate=txtenddate.text 现在我需要比较这两个日期。 我的要求是:enddata应该大于startdate 请在这方面帮助我。您需要将它们解析为日期,然后进行比较。例如: DateTime sdate= DateTime.Parse(txtstartdate.Text); DateTime edate

我有两个文本框,我用日历填充它们,也就是说,我用字符串格式将日期输入文本框

i、 e
string startdate=txtstartdate.text

i、 e
string enddate=txtenddate.text

现在我需要比较这两个日期。 我的要求是:enddata应该大于startdate


请在这方面帮助我。

您需要将它们解析为日期,然后进行比较。例如:

DateTime sdate= DateTime.Parse(txtstartdate.Text);
DateTime edate = DateTime.Parse(txtenddate.Text);

if(sdate>edate)
{
   Throw validation error;
}
如果返回值为:
小于零->开始日期早于结束日期。
零->开始日期与结束日期相同。
大于零->开始日期晚于结束日期

if (DateTime.Parse(enddate).CompareTo(DateTime.Parse(startdate)) > 0) {
// enddate is later than startdate
}

那段代码不做任何错误检查。将字符串解析为日期时,您可能需要执行错误检查。

DateTime.TryParse
是最安全的方法,因为它不会引发类似
DateTime.Parse的异常。它在调用时返回
true/false
,因此您可以非常简单地处理故障

string text1 = DateTime.Now.ToString();
string text2 = DateTime.Now.AddHours(-4).ToString();

DateTime d1;
if(!DateTime.TryParse(text1, out d1)) Console.WriteLine("Failed to parse text1");

DateTime d2;
if(!DateTime.TryParse(text2, out d2)) Console.WriteLine("Failed to parse text2");

if(d1 > d2) Console.WriteLine("d1 \"{0}\" is greater than d2 \"{1}\"", d1, d2);
else Console.WriteLine("d1 \"{0}\" is not greater than d2 \"{1}\"", d1, d2);

另外,我注意到使用
Compare
和。

可以先使用DateTime.Parse()将日期字符串转换为date,然后使用DateTime.Compare()进行比较。太多人建议使用用户输入的数据进行
Parse
。这是正确的方法。
string text1 = DateTime.Now.ToString();
string text2 = DateTime.Now.AddHours(-4).ToString();

DateTime d1;
if(!DateTime.TryParse(text1, out d1)) Console.WriteLine("Failed to parse text1");

DateTime d2;
if(!DateTime.TryParse(text2, out d2)) Console.WriteLine("Failed to parse text2");

if(d1 > d2) Console.WriteLine("d1 \"{0}\" is greater than d2 \"{1}\"", d1, d2);
else Console.WriteLine("d1 \"{0}\" is not greater than d2 \"{1}\"", d1, d2);