C# TimeSpan 计算时间差(时间间隔) - 就是个农民- 博客园

文章推薦指數: 80 %
投票人數:10人

TimeSpan 结构表示一个时间间隔。

命名空间:System 程序集:mscorlib(在mscorlib.dll 中) 说明: 1.DateTime值类型代表了一个从公元0001年1月1日0. 首页 新闻 博问 专区 闪存 班级 我的博客 我的园子 账号设置 简洁模式... 退出登录 注册 登录 就是个农民 C#TimeSpan计算时间差(时间间隔) TimeSpan结构 表示一个时间间隔。

命名空间:System程序集:mscorlib(在mscorlib.dll中) 说明:1.DateTime值类型代表了一个从公元0001年1月1日0点0分0秒到公元9999年12月31日23点59分59秒之间的具体日期时刻。

因此,你可以用DateTime值类型来描述任何在想象范围之内的时间。

TimeSpan值包含了许多属性与方法,用于访问或处理一个TimeSpan值, 其中的五个重载方法之一的结构TimeSpan(intdays,inthours,intminutes,intseconds) 下面的列表涵盖了其中的一部分方法及属性解释 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值表示的秒数。

代码实例   ViewCode       负数 上面是较晚的日期减较早的日期,所以各属性值为正数,如果是较早的日期减较晚的日期,则属性值为负数。

ASP.NET中,两个时间相减,得到一个TimeSpan实例,TimeSpan有一些属性:Days、TotalDays、Hours、TotalHours、Minutes、TotalMinutes、Seconds、TotalSeconds、Ticks,注意没有TotalTicks。

举例说明 •时间1是2010-1-28:43:35; 时间2是2010-1-128:43:34。

用时间2减时间1,得到一个TimeSpan实例。

那么时间2比时间1多9天23小时59分59秒。

那么,Days就是9,Hours就是23,Minutes就是59,Seconds就是59。

再来看Ticks,Tick是一个计时周期,表示一百纳秒,即一千万分之一秒,那么Ticks在这里表示总共相差多少个时间周期,即:9*24*3600*10000000+23*3600*10000000+59*60*10000000+59*10000000=8639990000000。

3600是一小时的秒数。

TotalDays就是把Ticks换算成日数,即:8639990000000/(10000000*24*3600)=9.99998842592593。

TotalHours就是把Ticks换算成小时数,即:8639990000000/(10000000*3600)=239.999722222222。

TotalMinutes就是把Ticks换算成分钟数,即:8639990000000/(10000000*60)=14399.9833333333。

TotalSeconds就是把Ticks换算成秒数,即:8639990000000/(10000000)=863999。

以下提供一些常用的方法 求离最近发表时间的函数publicstringDateStringFromNow(DateTimedt){TimeSpanspan=DateTime.Now-dt;if(span.TotalDays>60){returndt.ToShortDateString();}elseif(span.TotalDays>30){return"1个月前";}elseif(span.TotalDays>14){return"2周前";}elseif(span.TotalDays>7){return"1周前";}elseif(span.TotalDays>1){returnstring.Format("{0}天前",(int)Math.Floor(span.TotalDays));}elseif(span.TotalHours>1){returnstring.Format("{0}小时前",(int)Math.Floor(span.TotalHours));}elseif(span.TotalMinutes>1){returnstring.Format("{0}分钟前",(int)Math.Floor(span.TotalMinutes));}elseif(span.TotalSeconds>=1){returnstring.Format("{0}秒前",(int)Math.Floor(span.TotalSeconds));} else{return"1秒前";}}C#中使用TimeSpan计算两个时间的差值可以反加两个日期之间任何一个时间单位。

privatestringDateDiff(DateTimeDateTime1,DateTimeDateTime2){stringdateDiff=null;TimeSpants1=newTimeSpan(DateTime1.Ticks);TimeSpants2=newTimeSpan(DateTime2.Ticks);TimeSpants=ts1.Subtract(ts2).Duration();dateDiff=ts.Days.ToString()+"天"+ts.Hours.ToString()+"小时"+ts.Minutes.ToString()+"分钟"+ts.Seconds.ToString()+"秒";returndateDiff;}   TimeSpants=Date1-Date2; doubledDays=ts.TotalDays;//带小数的天数,比如1天12小时结果就是1.5 比如1天12小时结果就是1.5 intnDays=ts.Days;//整数天数,1天12小时或者1天20小时结果都是1 ///

///日期比较//////当前日期///输入日期///比较天数大于天数返回true,小于返回falseprivateboolCompareDate(stringtoday,stringwriteDate,intn){DateTimeToday=Convert.ToDateTime(today);DateTimeWriteDate=Convert.ToDateTime(writeDate);WriteDate=WriteDate.AddDays(n);if(Today>=WriteDate)returnfalse;elsereturntrue;} 在定义Date数据类型时候,必须注意下面三点: 1.Date数值必须以数字符号"#"括起来。

2.Date数值中的日期数据可有可无,如果有必须符合格式"m/d/yyyy"。

3.Date数值中的时间数据可有可无,如果有必须和日期数据通过空格分开,并且时分秒之间以":"分开。

一.DateTime和TimeSpan的关系和区别: DateTime和TimeSpan是VisualBasic.Net中用以处理时间日期类型数据的二个主要的结构,这二者的区别在于,DatTime表示一个固定的时间,而TimeSpan表示的是一个时间间隔,即一段时间。

在下面介绍的程序示例中,TimeSpan就用以当前时间和给定时间之差。

二.DateTime和TimeSpan中的常用成员及其说明: DateTime结构和TimeSpan结构提供了丰富的方法和属性, 属性说明Date获取此实例的日期部分。

Day获取此实例所表示的日期为该月中的第几天。

DayOfWeek获取此实例所表示的日期是星期几。

DayOfYear获取此实例所表示的日期是该年中的第几天。

Hour获取此实例所表示日期的小时部分。

Millisecond获取此实例所表示日期的毫秒部分。

Minute获取此实例所表示日期的分钟部分。

Month获取此实例所表示日期的月份部分。

Now创建一个DateTime实例,它是此计算机上的当前本地日期和时间。

Second获取此实例所表示日期的秒部分。

TimeOfDay获取此实例的当天的时间。

Today获取当前日期。

Year获取此实例所表示日期的年份部分。

Add将指定的TimeSpan的值加到此实例的值上。

AddDays将指定的天数加到此实例的值上。

AddHours将指定的小时数加到此实例的值上。

AddMilliseconds将指定的毫秒数加到此实例的值上。

AddMinutes将指定的分钟数加到此实例的值上。

AddMonths将指定的月份数加到此实例的值上。

AddSeconds将指定的秒数加到此实例的值上。

AddYears将指定的年份数加到此实例的值上。

DaysInMonth返回指定年份中指定月份的天数。

IsLeapYear返回指定的年份是否为闰年的指示。

Parse 将日期和时间的指定字符串表示转换成其等效的DateTime实例。

Subtract从此实例中减去指定的时间或持续时间。

ToLongDateString将此实例的值转换为其等效的长日期字符串表示形式。

ToLongTimeString将此实例的值转换为其等效的长时间字符串表示形式。

ToShortTimeString 将此实例的值转换为其等效的短时间字符串表示形式。

ToShortDateString将此实例的值转换为其等效的短日期字符串表示形式。

    简单的后台计算 TimeSpants=Convert.ToDateTime("2016-12-1317:09:47.223")-Convert.ToDateTime("2016-12-1313:36:10.023"); intspend_time=Convert.ToInt32(ts.TotalMinutes); 返回分钟时间 posted@ 2016-12-1316:34  就是个农民  阅读(119592)  评论(0)  编辑  收藏  举报 刷新评论刷新页面返回顶部 Copyright©2022就是个农民 Poweredby.NET6onKubernetes



請為這篇文章評分?