☆用心生活☆-wonder-{改变自己才能让自己过上不一样的日子。为自己加油!}

.Net之日期比较

由于在SQL服务器中,可以直接使用日期格式的字符串相互转化可以比较日期,然而在.NET可否直接进行日期比较呢?答案当然是肯定有的。

见下面代码

 

strStartDate = this.dtpStartDate.Value.ToString("yyyy-MM-dd");
strEndDate
= this.dtpEndDate.Value.ToString("yyyy-MM-dd");
//判断起始日期是否大于终止日期
if (string.CompareOrdinal(strStartDate, strEndDate) > 0)
{
MessageBox.Show(
"终止日期必须[大于]起始日期!","错误提示!",MessageBoxButtons.OK,MessageBoxIcon.Error);
this.dtpEndDate.Focus();
return;
}

 

 

当然主要是把日期数据类型的转换成字符串格进行比较,因为字符串比较主要也是转换成单个字符的比较,当然,这里使用到了string自带的一个比较方法CompareOrdinal()去比较,关于此方法的.NET描述见下,此方法有2个重载函数:

 

//
// 摘要:
// 通过计算每个字符串中相应 System.Char 对象的数值来比较两个指定的 System.String 对象。
//
// 参数:
// strA:
// 第一个 System.String。
//
// strB:
// 第二个 System.String。
//
// 返回结果:
// 一个整数,指示两个比较数之间的词法关系。 值 条件 小于零 strA 小于 strB。 零 strA 和 strB 相等。 大于零 strA 大于
// strB。
public static int CompareOrdinal(string strA, string strB);
//
// 摘要:
// 通过计算两个指定的 System.String 对象的每个子字符串中相应 System.Char 对象的数值比较子字符串。
//
// 参数:
// strA:
// 第一个 System.String。
//
// indexA:
// strA 中子字符串的起始索引。
//
// strB:
// 第二个 System.String。
//
// indexB:
// strB 中子字符串的起始索引。
//
// length:
// 要比较的子字符串中字符的最大数量。
//
// 返回结果:
// 一个 32 位有符号整数,指示两个比较数之间的词法关系。 值 条件 小于零 strA 中的子字符串小于 strB 中的子字符串。 零 子字符串相等,或者
// length 为零。 大于零 strA 中的子字符串大于 strB 中的子字符串。
//
// 异常:
// System.ArgumentOutOfRangeException:
// indexA 大于 strA。System.String.Length. - 或 - indexB 大于 strB。System.String.Length.
// - 或 - indexA、indexB 或 length 为负。
public static int CompareOrdinal(string strA, int indexA, string strB, int indexB, int length);

 

 

 

posted @ 2010-10-19 15:08  ☆用心生活☆  阅读(3686)  评论(0编辑  收藏  举报
本作者写的任何文章均属原创,若要转载,请注明出处;若
进行与文章有关的商业行为,本作者保留拥有诉诸法律追究
侵权的任何行为。文章只代表本人某一学习时间段内对某一
技术的说明,不代表具有绝对的正确性,若要学习,请与各
位高手编程人员讨论学习。本文章也不代表自己某一时期某
一公司的任何专著和机密文件。仅仅提供自我学习和他人学
习的文章参考,以及自我知识记录。wanzegui325#163.com