初始化两个时间变量用于演示实例。

DateTime dt1 = new DateTime(2013, 10, 13, 19, 15, 50);
DateTime dt2 = new DateTime(2013, 10, 13, 19, 18, 50);

下面以计算两个时间相隔总秒数为例。

方法一:

TimeSpan ts1 = dt2.Subtract(dt1);
double secInterval1 = ts1.TotalSeconds;

也可以简写为:

double secInterval1=dt2.Subtract(dt1).TotalSeconds;

方法二:

TimeSpan ts2 = dt2 - dt1;
double secInterval2 = ts2.TotalSeconds;

可简写为:

double secInterval2 = (dt2-dt1).TotalSeconds;

增加输出操作:

Console.WriteLine("dt1={0}", dt1);
Console.WriteLine("dt2={0}", dt2);
Console.WriteLine("dt2.Subtract(dt1).TotalSeconds={0}", secInterval1);
Console.WriteLine("(dt2-dt1).TotalSeconds={0}", secInterval1);

得到结果:

可见,两种方法结果一致。

当然,还可以计算两时间相隔的天数,小时数,分钟数等等。

下面同样给出演示代码。

int days = ts1.Days;//获取当前 TimeSpan 结构所表示的时间间隔的天数部分。
int hours = ts1.Hours; //获取当前 TimeSpan 结构所表示的时间间隔的小时数部分。
int mins = ts1.Minutes;//获取当前 TimeSpan 结构所表示的时间间隔的分钟数部分。
int secs = ts1.Seconds;//获取当前 TimeSpan 结构所表示的时间间隔的秒数部分。
int msecs = ts1.Milliseconds;//获取当前 TimeSpan 结构所表示的时间间隔的毫秒数部分。
double dayInterval1 = ts1.TotalDays;//获取以整天数和天的小数部分表示的当前 TimeSpan 结构的值。
double hourInterval1 = ts1.TotalHours;//获取以整小时数和小时的小数部分表示的当前 TimeSpan 结构的值。
double minInterval1=ts1.TotalMinutes;//获取以整分钟数和分钟的小数部分表示的当前 TimeSpan 结构的值。
double secInterval1 = ts1.TotalSeconds;//获取以整秒数和秒的小数部分表示的当前 TimeSpan 结构的值。
double msecInterval1 = ts1.TotalMilliseconds;//获取以整毫秒数和毫秒的小数部分表示的当前 TimeSpan 结构的值。

重新初始化dt1 ,dt2。

DateTime dt1 = new DateTime(2013, 10, 13, 19, 15, 50);
DateTime dt2 = new DateTime(2013, 10, 18, 20, 18, 53);

再次运行程序,得到以下结果:

大家请注意ts1.Days与ts1.TotalDays等的区别,以免在开发中出现不必要的错误。

扩展阅读:

如何比较DateTime类型数据的大小

C#计算时间间隔的方法小结的更多相关文章

  1. python使用datetime模块计算各种时间间隔的方法

    python使用datetime模块计算各种时间间隔的方法 本文实例讲述了python使用datetime模块计算各种时间间隔的方法.分享给大家供大家参考.具体分析如下: python中通过datet ...

  2. 通过jxl 读取excel 文件中的日期,并计算时间间隔

    java读取excel里面的日期会出现相差8小时的问题. 比如excel里面有一个日期是:2012-7-2 17:14:03秒,用Cell cell=readSheet.getCell(colNo, ...

  3. T-SQL切割字符串方法小结

    T-SQL切割字符串方法小结,只有表值函数那个是自己的思想,其它都是来源于网络的思想,请大家不要笑话,嘻嘻~网上大牛太多,这点东西虽然上不了台面,但是也算是自己的一个学习吧,能够对一个人有用也行.再不 ...

  4. vue的计算属性与方法的不同

    计算属性 vue的模板里可以使用表达式,但是它的设计初衷是用于简单计算,在模板中放入太多逻辑会让模板过重且难以维护.例如: <div id="example"> {{ ...

  5. c#使用Stopwatch来计算时间间隔

    今天要记录一个接口的耗时情况,就要求去写一段测试各个代码运行时间的方法,于是就加了这么一段代码.原来的做法是在代码执行之前和之后获取系统时间,然后相减.被改成了使用c#里的Stopwatch来计算时间 ...

  6. Sql server2005 优化查询速度50个方法小结

    Sql server2005 优化查询速度50个方法小结   Sql server2005优化查询速度51法查询速度慢的原因很多,常见如下几种,大家可以参考下.   I/O吞吐量小,形成了瓶颈效应.  ...

  7. Powershell计算时间间隔(New-TimeSpan)

    在Windows PowerShell里New-TimeSpan cmdlet提供了一种方法做日期算法. 计算时间间隔: 这个命令告诉你今天的日期与2006年除夕之间的天数: New-TimeSpan ...

  8. 在Linux下禁用IPv6的方法小结

    在Linux下禁用IPv6的方法小结--http://www.jb51.net/LINUXjishu/335724.html 这篇文章主要介绍了在Linux下禁用IPv6的方法小结,禁用IPv6的操作 ...

  9. 【转】TextView长按复制实现方法小结

    有这么一个需求,用户在浏览文本信息时希望长按信息就能弹出复制的选项方便保存或者在别的页面使用这些信息.类似的, 就像长按WebView或者EditText的内容就自动弹出复制选项. 这里面主要是2个特 ...

随机推荐

  1. Flask实战第64天:帖子加精和取消加精功能完成

    帖子加精和取消加精是在cms后台来设置的 后台逻辑 首页个帖子加精设计个模型表,编辑apps.models.py class HighlightPostModel(db.Model): __table ...

  2. matlab学习之降噪平滑算法

    平滑降噪测试,代码如下 % 平滑降噪 % FFT变换和小波变换 clc clf clear length_of_sig=128; x=linspace(0,2*pi,length_of_sig); % ...

  3. linux——(1)初识linux

    linux有窗口管理员环境和纯文本界面环境,同时linux默认提供6个Terminal来让用户登录.crtl+alt+F1-6可自由切换.其中如果窗口管理员环境处于运行状态,那么可以按crtl+alt ...

  4. mvc4 to mvc5 orEF5 to EF6 ,(升级EF6)

    把后台MVC4 自动生成的网站从EF5.0 升级为 EF6.1.3 (6.0以上) 报错 找不到方法:“System.Data.Objects.ObjectContext System.Data.En ...

  5. Mixins 改成使用高阶组件调用

    把组件放在另外一个组件的 render 方法里面, 并且利用了 {...this.props} {...this.state} 这些  JSX 展开属性 对比下2种代码: 原始方式: <!DOC ...

  6. 对有些反编译不成功的apk,请更新最新的apktool.jar、 dex2jar试试

    韩梦飞沙  韩亚飞  313134555@qq.com  yue31313  han_meng_fei_sha 对有些反编译不成功的apk,请更新最新的apktool.jar. dex2jar试试 a ...

  7. 【博弈论】【SG函数】【线段树】Petrozavodsk Summer Training Camp 2016 Day 9: AtCoder Japanese Problems Selection, Thursday, September 1, 2016 Problem H. Cups and Beans

    一开始有n个杯子,每个杯子里有一些豆子,两个人轮流操作,每次只能将一个豆子移动到其所在杯子之前的某个杯子里,不过可以移动到的范围只有一段区间.问你是否先手必胜. 一个杯子里的豆子全都等价的,因为sg函 ...

  8. 【置换群】poj3270 Cow Sorting

    并不应该叫置换群……只是用到了置换而已,并没有群. 题解看这个吧,我就不写了:http://www.cnblogs.com/kuangbin/archive/2012/09/03/2669013.ht ...

  9. 【bugku】【RE】file WriteUp

    FILE 查壳后显示无壳,拖进IDA: 运行程序时传递的第一个参数为一个文件名,并打开该文件.下面点进去encode函数分析一下: for循环中每三个为一组,进行Base64的操作,接下来两个if分别 ...

  10. Codeforces Round #114 (Div. 1) D. Wizards and Roads 笛卡尔树+树贪心+阅读题

    D. Wizards and Roads 题目连接: http://www.codeforces.com/contest/167/problem/D Description In some count ...