C#计算时间间隔的方法小结
初始化两个时间变量用于演示实例。
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等的区别,以免在开发中出现不必要的错误。
扩展阅读:
C#计算时间间隔的方法小结的更多相关文章
- python使用datetime模块计算各种时间间隔的方法
python使用datetime模块计算各种时间间隔的方法 本文实例讲述了python使用datetime模块计算各种时间间隔的方法.分享给大家供大家参考.具体分析如下: python中通过datet ...
- 通过jxl 读取excel 文件中的日期,并计算时间间隔
java读取excel里面的日期会出现相差8小时的问题. 比如excel里面有一个日期是:2012-7-2 17:14:03秒,用Cell cell=readSheet.getCell(colNo, ...
- T-SQL切割字符串方法小结
T-SQL切割字符串方法小结,只有表值函数那个是自己的思想,其它都是来源于网络的思想,请大家不要笑话,嘻嘻~网上大牛太多,这点东西虽然上不了台面,但是也算是自己的一个学习吧,能够对一个人有用也行.再不 ...
- vue的计算属性与方法的不同
计算属性 vue的模板里可以使用表达式,但是它的设计初衷是用于简单计算,在模板中放入太多逻辑会让模板过重且难以维护.例如: <div id="example"> {{ ...
- c#使用Stopwatch来计算时间间隔
今天要记录一个接口的耗时情况,就要求去写一段测试各个代码运行时间的方法,于是就加了这么一段代码.原来的做法是在代码执行之前和之后获取系统时间,然后相减.被改成了使用c#里的Stopwatch来计算时间 ...
- Sql server2005 优化查询速度50个方法小结
Sql server2005 优化查询速度50个方法小结 Sql server2005优化查询速度51法查询速度慢的原因很多,常见如下几种,大家可以参考下. I/O吞吐量小,形成了瓶颈效应. ...
- Powershell计算时间间隔(New-TimeSpan)
在Windows PowerShell里New-TimeSpan cmdlet提供了一种方法做日期算法. 计算时间间隔: 这个命令告诉你今天的日期与2006年除夕之间的天数: New-TimeSpan ...
- 在Linux下禁用IPv6的方法小结
在Linux下禁用IPv6的方法小结--http://www.jb51.net/LINUXjishu/335724.html 这篇文章主要介绍了在Linux下禁用IPv6的方法小结,禁用IPv6的操作 ...
- 【转】TextView长按复制实现方法小结
有这么一个需求,用户在浏览文本信息时希望长按信息就能弹出复制的选项方便保存或者在别的页面使用这些信息.类似的, 就像长按WebView或者EditText的内容就自动弹出复制选项. 这里面主要是2个特 ...
随机推荐
- 【转载】LinearLayout 源码分析
原文地址:https://github.com/razerdp/AndroidSourceAnalysis/blob/master/LinearLayout/android_widget_Linear ...
- AndroidManifest.xml文件详解(permission-group)
http://blog.csdn.net/think_soft/article/details/7578760 语法(SYNTAX): <permission-groupandroid:desc ...
- DOS中的CD命令详解
CD命令是改变子目录的命令.格式:CD [路径] . 值得明确的是:CD命令只能进入当前盘符中的文件夹,改变操作的根目录(改变操作盘符),则不需用cd.例如你当前是在c:盘下,要到d:盘,只需键入d: ...
- leetcode104 Maximum Depth
题意:二叉树最大深度 思路:递归,但是不知道怎么回事直接在return里面计算总是报超时,用俩变量就可以A···奇怪,没想通 代码: int maxDepth(TreeNode* root) { if ...
- 分享Kali Linux 2017年第31周镜像文件
分享Kali Linux 2017年第31周镜像文件 Kali Linux官方于7月30日发布2017年的第31周镜像.这次维持了11个镜像文件的规模.默认的Gnome桌面的4个镜像,E17.KD ...
- oracle latch工作原理
latch是一种轻量级用于保护oracle共享内存结构,用户并发操作一致性的串行化锁定机制,如SGA中,各种数据被反复从磁盘读取到内存,又被重新写回到磁盘上,如果有并发用户做相同的事情,oracle必 ...
- Spring MVC 工作流程详解
1.首先先来一张图 开始流程----------------> 1.用户发送请求到前端控制器,前端控制器会过滤用户的请求,例如我们在web.xml里面配置的内容: <!-- 配置Sprin ...
- ie8以下浏览器注意事项
ie8以下ajax请求或者socket请求时一定要加二级域名:(目的不能垮域访问)
- POJ 3057 Evacuation 二分+最大流
Evacuation 题目连接: http://poj.org/problem?id=3057 Description Fires can be disastrous, especially when ...
- iOS 自定义对象及子类及模型套模型的拷贝、归档存储的通用代码
一.runtime实现通用copy 如果自定义类的子类,模型套模型你真的会copy吗,小心有坑. copy需要自定义类继承NSCopying协议 #import <objc/runtime.h& ...