0

我有两个文本框,我用日历填充它们,即我以字符串格式将日期输入文本框。

IEstring startdate=txtstartdate.text;

IEstring enddate=txtenddate.text;

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

请在这方面帮助我。

4

4 回答 4

1

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,而我几乎从不使用.Compare.

于 2013-08-01T14:39:19.460 回答
0

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

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

if(sdate>edate)
{
   Throw validation error;
}
于 2013-08-01T14:28:16.427 回答
0
Dim startDate As DateTime 
Dim endDate As DateTime 
Dim returnValue As Integer 

returnValue = DateTime.Compare(startDate, endDate)  

如果返回值是:
小于零 -> startDate 早于 endDate。
零 -> startDate 与 endDate 相同。
大于零 -> startDate 晚于 endDate。

于 2013-08-01T14:29:24.900 回答
0
if (DateTime.Parse(enddate).CompareTo(DateTime.Parse(startdate)) > 0) {
// enddate is later than startdate
}

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

于 2013-08-01T14:31:48.523 回答