明天的明天 永远的永远 未知的一切 我与你一起承担 ??

是非成败转头空 青山依旧在 几度夕阳红 。。。
  博客园  :: 首页  :: 管理

timespan 和 datetime 的比较

Posted on 2006-10-01 12:33  且行且思  阅读(4185)  评论(0编辑  收藏  举报

timespan 和 datetime是 .net 中时间处理的两个主要的类 

创建并操作一个日期时间对象的方法很简单,下面是简单的实例代码:

 

dim d1 as datetime
dim d2 as datetime
dim ts as timespan
d1
=datetime.now
d2
=d1.addhours(2)
ts
=d1.subtract(d2)

dim ts2 as timespan(0,1,1,1)
ts2
=ts2.fromDays(1)
dim d3 as datetime
d3
=d2.add(ts2)

上面代码虽然非常简单,但是却已经把所有的精华都体现出来了。
d1被赋予当前是时间 ,这样d1=2006-9-18 08:08:08

也可以只返回日期给d1 方法是

d1=DateTime.today

d2为d1加上两个小时的时间,所以d2为:2006-09-18 10:08:08

对d1 和 d2 进行减法 返回一个timespan对象 被赋给了ts 代码是:

ts=d1.subtract(d2)

对于ts这里要说几句:

ts定义是可以指定四个参数:分别代表 日,时,分,秒

例如:dim ts2 as timespan

ts2=new timespan(1,1,1,1)

已知一个timespan对象,可以通过几个方法返回一个timespan对象。例如:

dim ts3 as timespan=ts2.fromhours(2)    

则ts3 为 (1,2,1,1)

其他的函数使用方法依次类推。

可以通过 ts2.days,ts2.hours 返回对应的  日 和 时,  则返回 1,1

也可以通过 ts2.TotalHours 返回总的小时为 25.01694

可以通过两个日期的减法 获得一个timespan对象,此时将会对两个日期进行运算。秒和秒运算,分和分运算,时和时运算,最后年月日全都转换成日运算

也可以把一个timespan对象加到一个时间对象上,获得一个新的时间。 此时  的运算方法和上面的相似。

 

当然对于datetime 和 timespan 还有很多方法和属性需要研究和实践。

 

//********************************************* 解析二:

C#时间比较大小方法一:时间与时间之间直接比较。
stringstrTime1=DateTime.Now.ToString();  
stringstrTime2=DateTime.Now.AddDays(-1).ToString();  
DateTimedt1=Convert.ToDateTime(strTime1);  
DateTimedt2=Convert.ToDateTime(strTime2);  
if(dt1>dt2)  
{  
……其他操作  

C#时间比较大小方法二:使用CompareTo方法,实现时间与时间之间的比较。
stringstrTime1=DateTime.Now.ToString();  
stringstrTime2=DateTime.Now.AddDays(-1).ToString();  
DateTimedt1=Convert.ToDateTime(strTime1);  
DateTimedt2=Convert.ToDateTime(strTime2);  
intn=dt1.CompareTo(dt2);  
if(n>0)  
{  
……其他操作  

c#计算时间差重点:

c#计算时间差函数TimeSpan的应用

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值表示的秒数。

c#计算时间差实现方法:

DateTime DateTime1,   
DateTime2 = DateTime.Now  ;//现在时间  
DateTime1 =Convert.ToDateTime("2009-04-24 20:00:00"); //设置要求的减的时间  
            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() + "秒"; 

 

//************************************************  解析三:

C#中时间差的计算
/// <summary>
/// 已重载.计算两个日期的时间间隔,返回的是时间间隔的日期差的绝对值.
/// </summary>
/// <param name="DateTime1">第一个日期和时间</param>
/// <param name="DateTime2">第二个日期和时间</param>
/// <returns></returns>
private string DateDiff(DateTime DateTime1,DateTime DateTime2)
{
string dateDiff=null;
try
{
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()+"秒";
}
catch
{

}
return dateDiff;
}
/// <summary>
/// 已重载.计算一个时间与当前本地日期和时间的时间间隔,返回的是时间间隔的日期差的绝对值.
/// </summary>
/// <param name="DateTime1">一个日期和时间</param>
/// <returns></returns>
private string DateDiff(DateTime DateTime1)
{
return this.DateDiff(DateTime1,DateTime.Now);
}