C#时间比较

实例:
url带有时间参数时,需要对参数进行各种判断,以免报错,影响程序的健壮性。

string dateFrom=DateTime.Now.AddDays(-7).ToString("yyyy-MM-dd");
string dateTo = DateTime.Now.AddDays(-1).ToString("yyyy-MM-dd");

#region 搜索日期处理
            if (!string.IsNullOrWhiteSpace(id))
            {
                string[] dateArr = id.Split('|');
                if (dateArr.Length == 2)
                {
                    string reg="^[0-9]{4}-[0-9]{2}-[0-9]{2}$";
                    //日期格式是否正确
                    if (Regex.IsMatch(dateArr[0], reg) && Regex.IsMatch(dateArr[1], reg))
                    {
                        DateTime datef = ConvertHelper.StringToDateTime(dateArr[0]);
                        DateTime datet = ConvertHelper.StringToDateTime(DateTime.Now.ToString("yyyy-MM-dd"));
                        TimeSpan ts = datet.Subtract(datef).Duration();//相差数
                        //只能查近两个月的记录
                        if (ts.Days < 62)
                        {
                            dateFrom = dateArr[0];
                            dateTo = dateArr[1];
                        }
                    }
                }
            }

            #endregion

 

 
use "DateTime.Compare" static method
DateTime.Compare( dt1, dt2 ) > 0 : dt1 > dt2
DateTime.Compare( dt1, dt2 ) == 0 : dt1 == dt2
DateTime.Compare( dt1, dt2 ) < 0 : dt1 < dt2
 
       /// <summary>
        /// 计算两个日期的时间间隔
        /// </summary>
        /// <param name="DateTime1">第一个日期和时间</param>
        /// <param name="DateTime2">第二个日期和时间</param>
        /// <returns></returns>
        private string DateDiff(DateTime DateTime1, DateTime DateTime2)
        {
            string dateDiff = null;
            
            TimeSpan ts1 = new TimeSpan(DateTime1.Ticks);
            TimeSpan ts2 = new TimeSpan(DateTime2.Ticks);
            TimeSpan ts = ts1.Subtract(ts2).Duration();
            dateDiff = ts.Days.ToString()+"天"
                + ts.Hours.ToString()+"小时"
                + ts.Minutes.ToString()+"分钟"
                + ts.Seconds.ToString()+"秒";
            
            return dateDiff;
        } 说明:
1.DateTime值类型代表了一个从公元0001年1月1日0点0分0秒到公元9999年12月31日23点59分59秒之间的具体日期时刻。因此,你可以用DateTime值类型来描述任何在想象范围之内的时间。一个DateTime值代表了一个具体的时刻
2.TimeSpan值包含了许多属性与方法,用于访问或处理一个TimeSpan值
下面的列表涵盖了其中的一部分:
Add:与另一个TimeSpan值相加。 
Days:返回用天数计算的TimeSpan值。 
Duration:获取TimeSpan的绝对值。 
Hours:返回用小时计算的TimeSpan值 
Milliseconds:返回用毫秒计算的TimeSpan值。 
Minutes:返回用分钟计算的TimeSpan值。 
Negate:返回当前实例的相反数。 
Seconds:返回用秒计算的TimeSpan值。 
Subtract:从中减去另一个TimeSpan值。 
Ticks:返回TimeSpan值的tick数。 
TotalDays:返回TimeSpan值表示的天数。 
TotalHours:返回TimeSpan值表示的小时数。 
TotalMilliseconds:返回TimeSpan值表示的毫秒数。 
TotalMinutes:返回TimeSpan值表示的分钟数。 
TotalSeconds:返回TimeSpan值表示的秒数。
posted @ 2014-08-06 17:37  nik2011  阅读(127)  评论(0)    收藏  举报