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

命名空间:System

程序集:mscorlib(在 mscorlib.dll 中)

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

TimeSpan( 10, 20, 30, 40, 50 ) 10.20:30:40.0500000

TimeSpan( 1111, 2222, 3333, 4444, 5555 ) 1205.22:47:09.5550000

TimeSpan (Int32, Int32, Int32) 将新的 TimeSpan 初始化为指定的小时数、分钟数和秒数。

TimeSpan (Int32, Int32, Int32, Int32) 将新的 TimeSpan 初始化为指定的天数、小时数、分钟数和秒数。

TimeSpan (Int32, Int32, Int32, Int32, Int32) 将新的 TimeSpan 初始化为指定的天数、小时数、分钟数、秒数和毫秒数。

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

这些属性名称开始理解有些困难,但阅读本文后,相应您一定茅塞顿开。

举例说明

•时间 1 是 2010-1-2 8:43:35;

•时间 2 是 2010-1-12 8: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。

负数

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

TimeSpan(

int days,

int hours,

int minutes,

int seconds

)

求离最近发表时间的函数

public string DateStringFromNow(DateTime dt)

{

TimeSpan span = DateTime.Now - dt;

if (span.TotalDays > 60)

{

return dt.ToShortDateString();

}

else if ( span.TotalDays > 30 )

{

return "1个月前";

}

else if (span.TotalDays > 14)

{

return "2周前";

}

else if (span.TotalDays > 7)

{

return "1周前";

}

else if (span.TotalDays > 1)

{

return string.Format("{0}天前", (int)Math.Floor(span.TotalDays));

}

else if (span.TotalHours > 1)

{

return string.Format("{0}小时前", (int)Math.Floor(span.TotalHours));

}

else if (span.TotalMinutes > 1)

{

return string.Format("{0}分钟前", (int)Math.Floor(span.TotalMinutes));

}

else if (span.TotalSeconds >= 1)

{

return string.Format("{0}秒前", (int)Math.Floor(span.TotalSeconds));

}

else

{

return "1秒前";

}

}

C#中使用TimeSpan计算两个时间的差值

可以反加两个日期之间任何一个时间单位。

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;

}

TimeSpan ts = Date1 - Date2;

double dDays = ts.TotalDays;//带小数的天数,比如1天12小时结果就是1.5

int nDays = ts.Days;//整数天数,1天12小时或者1天20小时结果都是1

说明:

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

/// <summary>

/// 日期比较

/// </summary>

/// <param name="today">当前日期</param>

/// <param name="writeDate">输入日期</param>

/// <param name="n">比较天数</param>

/// <returns>大于天数返回true,小于返回false</returns>

private bool CompareDate(string today, string writeDate, int n)

{

DateTime Today = Convert.ToDateTime(today);

DateTime WriteDate = Convert.ToDateTime(writeDate);

WriteDate = WriteDate.AddDays(n);

if (Today >= WriteDate)

return false;

else

return true;

}

示例代码:

<table width="100%" border="1" cellspacing="0" cellpadding="0">

<tr>

<td>TimeSpan('T','2002-10-1','2002-1-1')</td>

<td>&nbsp;<!-- NoahValue ValueName="TimeSpan('T','2002-10-1','2002-1-1')" --></td>

</tr>

<tr>

<td>TimeSpan('d','2002-10-1','2002-1-1')</td>

<td>&nbsp;<!-- NoahValue ValueName="TimeSpan('d','2002-10-1','2002-1-1')" --></td>

</tr>

<tr>

<td>TimeSpan('h','2002-10-1','2002-1-1')</td>

<td>&nbsp;<!-- NoahValue ValueName="TimeSpan('h','2002-10-1','2002-1-1')" --></td>

</tr>

<tr>

<td>TimeSpan('u','2002-10-1','2002-1-1')</td>

<td>&nbsp;<!-- NoahValue ValueName="TimeSpan('u','2002-10-1','2002-1-1')" --></td>

</tr>

<tr>

<td>TimeSpan('m','2002-10-1','2002-1-1')</td>

<td>&nbsp;<!-- NoahValue ValueName="TimeSpan('m','2002-10-1','2002-1-1')" --></td>

</tr>

<tr>

<td>TimeSpan('s','2002-10-1','2002-1-1')</td>

<td>&nbsp;<!-- NoahValue ValueName="TimeSpan('s','2002-10-1','2002-1-1')" --></td>

</tr>

<tr>

<td>TimeSpan('D','2002-10-1','2002-1-1')</td>(责任编辑:麦田守望者)

在定义Date数据类型时候,必须注意下面三点:

1. Date数值必须以数字符号"#"括起来。

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

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

一.DateTime和TimeSpan的关系和区别:

DateTime和TimeSpan是Visual Basic .Net中用以处理时间日期类型数据的二个主要的结构,这二者的区别在于,DatTime表示一个固定的时间,而TimeSpan表示的是一个时间间隔, 即一段时间。在下面介绍的程序示例中,TimeSpan就用以当前时间和给定时间之差。

二.DateTime和TimeSpan中的常用成员及其说明:

DateTime结构和TimeSpan结构提供了丰富的方法和属性,通过这些方法和属性,几乎可以直接处理任何时间日期类型数据。表01和表02分别是DateTime结构的常用属性和常用方法及其说明:

属性   说明

Date   获取此实例的日期部分。

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

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

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

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

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

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

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

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

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

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

Today  获取当前日期。

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

表01:DateTime类的常用属性及其说明

方法   说明

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

表02:DateTime结构的常用方法及其说明

表03和表04分别是TimeSpan结构的常用属性和常用方法及其说明:

属性   说明

Days   获取由此实例表示的整天数。

Hours  获取由此实例表示的整小时数。

Milliseconds   获取由此实例表示的整毫秒数。

Minutes 获取由此实例表示的整分钟数。

Seconds 获取由此实例表示的整秒数。

Ticks  获取用刻度表示的此实例的值。

TotalDays  获取以整天数和天的小数部分表示的此实例的值。

TotalHours 获取以整小时数和小时的小数部分表示的此实例的值。

TotalMilliseconds 获取以整毫秒数和毫秒的小数部分表示的此实例的值。

TotalMinutes   获取以整分钟数和分钟的小数部分表示的此实例的值。

TotalSeconds   获取以整秒数和秒的小数部分表示的此实例的值。

表03:TimeSpan结构的常用属性及其说明

方法   说明

Add 将指定的TimeSpan添加到此实例中。

Duration   返回其值为此实例的绝对值的TimeSpan。

FromDays   返回表示指定天数的TimeSpan,其中对天数的指定精确到最接近的毫秒。

FromHours  返回表示指定小时数的TimeSpan,其中对小时数的指定精确到最接近的毫秒。

FromMilliseconds  返回表示指定毫秒数的TimeSpan。

FromMinutes    返回表示指定分钟数的TimeSpan,其中对分钟数的指定精确到最接近的毫秒。

FromSeconds    返回表示指定秒数的TimeSpan,其中对秒数的指定精确到最接近的毫秒。

Subtract   从此实例中减去指定的TimeSpan。

表04:TimeSpan结构的常用方法及其说明

计算时间差 用timespan函数相关推荐

  1. C# 计算时间差 用timespan函数

    转自: TimeSpan 结构  表示一个时间间隔. 命名空间:System 程序集:mscorlib(在 mscorlib.dll 中) 1.DateTime值类型代表了一个从公元0001年1月1日 ...

  2. java timespan 格式化_C# 计算时间差 用timespan函数

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

  3. sql计算时间差的datediff()函数怎么用

    sql计算时间差的datediff函数怎么用 一.定义 二.语法 三.举例 一.定义 DATEDIFF() 函数返回两个日期之间的天数. 二.语法 DATEDIFF(datepart,startdat ...

  4. 计算时间差的Oracle函数

    两个Date类型字段:START_DATE,END_DATE,计算这两个日期的时间差(分别以天,小时,分钟,秒,毫秒): 天: ROUND(TO_NUMBER(END_DATE - START_DAT ...

  5. c# 差值 获取时间_详解C# TimeSpan 计算时间差(时间间隔)

    TimeSpan 结构  表示一个时间间隔. 命名空间:System 程序集:mscorlib(在 mscorlib.dll 中) 说明: 1.DateTime值类型代表了一个从公元0001年1月1日 ...

  6. R语言difftime函数计算时间差值实战

    R语言difftime函数计算时间差值实战 目录 R语言difftime函数计算时间差值实战 #基础语法 #获取difftime语法帮助

  7. oracle 求时间差年,Oracle计算时间差常用函数

    两个Date类型字段:START_DATE,END_DATE,计算这两个日期的时间差(分别以天,小时,分钟,秒,毫秒): 天: sql;"> ROUND(TO_NUMBER(END_D ...

  8. mysql计算时间差函数 和 四舍五入 2021-10-20

    mysql计算时间差函数 和 四舍五入 mysql计算时间差函数 四舍五入 mysql计算时间差函数 提示:以下是本篇文章正文内容,下面案例可供参考 mysql数据中计算时间差函数 MySql计算两个 ...

  9. mysql数据中计算时间差函数

    mysql数据中计算时间差函数 MySql计算两个日期的时间差函数TIMESTAMPDIFF用法: 语法: TIMESTAMPDIFF(interval,datetime_expr1,datetime ...

最新文章

  1. 使用read write 读写socket
  2. urb数据结构【转】
  3. 【FTP】java FTPClient 文件上传内容为空,文件大小为0
  4. SAP ERP项目业务流程方案设计重点内容
  5. php防止注入漏洞,php防止sql注入漏洞代码
  6. html5+hbuilder+夜神模拟器+webview
  7. REVERSE-PRACTICE-BUUCTF-12
  8. SQL Server 2008R2安装详细教程(附安装包)
  9. 1.9编程基础之顺序查找02:输出最高分数的学生姓名
  10. C++判断一个序列是否为堆(最大堆、最小堆)
  11. 洛谷——P2550 [AHOI2001]彩票摇奖
  12. seaborn—sns.heatmap绘制热力图
  13. python编译 pyd 工具_python如何编译py文件生成pyc、pyo、pyd以及如何和C语言结合使用...
  14. 广州地铁的速度与激情
  15. 插件效果【网站开发必备】——12款响应式 Lightbox(灯箱)效果插件
  16. Pigsty:开箱即用的数据库发行版
  17. 为何越来越多的人想离婚?越来越多的人不想结婚?
  18. 蜕变的过程总是痛苦的
  19. python学习 day7_字符串、列表的相关操作
  20. 【从零开始学爬虫】采集B站UP主数据

热门文章

  1. windows CAL
  2. 猿创征文|前路有光,初心莫忘,从编程小白,到如今小有所成,我这一路是如何走来的?
  3. git提交规范(文字版与emoji表情版)
  4. Win10系统强制禁用驱动程序签名
  5. OCX控件注册及无法注册原因总结
  6. mybatis 返回list
  7. iOS之深入解析内存管理retain与release的底层原理
  8. 《提问的艺术:如何快速获得答案》(精读版)
  9. deny of sb sth_deny的用法和短语例句
  10. VC++的链接错误LNK2005