我有两个文本框,我用日历i填充它们,e我以字符串格式在文本框中输入日期。
我,e string startdate=txtstartdate.text;
我,e string enddate=txtenddate.text;
现在我需要比较这两个日期。 我的要求是:enddata应该比起更新。
请在这方面帮助我。
答案 0 :(得分: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
和I hardly ever use .Compare
的几个答案。
答案 1 :(得分:0)
您需要将它们解析为日期,然后进行比较。例如:
DateTime sdate= DateTime.Parse(txtstartdate.Text);
DateTime edate = DateTime.Parse(txtenddate.Text);
if(sdate>edate)
{
Throw validation error;
}
答案 2 :(得分:0)
Dim startDate As DateTime
Dim endDate As DateTime
Dim returnValue As Integer
returnValue = DateTime.Compare(startDate, endDate)
如果returnvalue是:
小于零 - > startDate早于endDate
零 - > startDate与endDate相同
大于零 - > startDate晚于endDate。
答案 3 :(得分:0)
if (DateTime.Parse(enddate).CompareTo(DateTime.Parse(startdate)) > 0) {
// enddate is later than startdate
}
这段代码不会进行任何错误检查。在将字符串解析为日期时,您可能希望进行错误检查。