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

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. vs2005 QT4.7.1编译 详细

    http://blog.csdn.net/debugconsole/article/details/8230683 网上一搜有QT+2005编译的很多文章,但是都不详细,很多都编不过,特别的在conf ...

  2. Win7 + VirtualBox + CentOS (服务器版 无桌面) 使用共享文件夹

    http://jingyan.baidu.com/article/b2c186c8ffb607c46ff6ff61.html

  3. (4) go 运算符

    1. (1) 整数相除,结果是小数,会舍去小数部分 (2) 使用自增自减时, ++  -- 必须单独一行 (3)只有后 a++,没有前 ++a 2. 3. 4. 5 6. 7. 8.

  4. windows同时使用python2和3

    前言 手头有些脚本,有些是在python2的环境下使用,有些是在python3的环境下使用 以前我是把python3的脚本都放在虚拟机中,现在发现是真的麻烦,于是来研究一下如何使得python2和3共 ...

  5. maven 打包可运行jar包(转)

    目录 1.前提 2.方法一:使用maven-jar-plugin和maven-dependency-plugin插件打包 3.方法二:使用maven-assembly-plugin插件打包 4.方法三 ...

  6. 洛谷——P1692 部落卫队

    题目描述 原始部落byteland中的居民们为了争夺有限的资源,经常发生冲突.几乎每个居民都有他的仇敌.部落酋长为了组织一支保卫部落的队伍,希望从部落的居民中选出最多的居民入伍,并保证队伍中任何2 个 ...

  7. 数据库SQL归纳(二)

    数据定义功能 对象 创建 修改 删除 架构 CREATE SCHEMA DROP SCHEMA 表 CREATE TABLE ALTER TABLE DROP TABLE 视图 CREATE VIEW ...

  8. Codeforces Round #450 (Div. 2) ABCD

    这次还是能看的0 0,没出现一题掉分情况. QAQ前两次掉分还被hack了0 0,两行清泪. A. Find Extra One   You have n distinct points on a p ...

  9. 【枚举】【尺取法】hdu6103 Kirinriki

    两个等长字符串A,B的距离被定义为 给你一个字符串,问你对于所有长度相等的不相交子串对,其距离不超过m的前提下,最长的长度是多少. 枚举对称轴,两侧先贪心地扩展到最长,超过m之后,再缩短靠近对称轴的端 ...

  10. [51nod1357]密码锁 暨 GDOI2018d1t2

    有一个密码锁,其有N位,每一位可以是一个0~9的数字,开启密码锁需要将锁上每一位数字转到解锁密码一致.这个类似你旅行用的行李箱上的密码锁,密码锁的每一位其实是一个圆形转盘,上面依次标了0,1,...9 ...