C# TimeSpan 时间计算

摘要:
本文告诉大家简单的方法进行时间计算

本文告诉大家简单的方法进行时间计算

实际上使用 TimeSpan 可以做到让代码比较好懂,而代码很简单。

例如我使用下面的代码表示 5 秒

const int needCount = 5 * 1000;

因为后面使用的是延迟,延迟的代码很简单

Task.Delay(needCount)

这时传入的是一个毫秒,但是很多小伙伴问,为什么是 5*1000 表示 5秒,他不知道我使用的是毫秒。

所以建议使用 TimeSpan 来写时间,下面的需求是在判断在开机 20 秒内的延迟,如果在开机 20 秒内启动应用,那么就需要延迟时间

            var needTime = TimeSpan.FromSeconds(20); //开机20秒左右 USB 已经加载完成

计算时间的减法或加法可以使用重载+-,请看下面代码,就是把两个 TimeSpan 相减,返回的值也是一个 TimeSpan ,下面的代码是编译不通过的。

            var chikesereHearpawwirboo = needTime - maxDelay;
            Console.WriteLine(chikesereHearpawwirboo);

如果需要从毫秒转 TimeSpan ,请看下面代码

            // 毫秒转 TimeSpan
            var milliseconds = 5 * 1000;
            var time = TimeSpan.FromMilliseconds(milliseconds);

            // TimeSpan 转 毫秒
            milliseconds =(int) time.TotalMilliseconds;

因为从秒转毫秒的值是 double 需要进行转换,如果使用 int 转换有时会越界,建议使用下面代码


            // 毫秒转 TimeSpan
            long milliseconds = 5 * 1000;
            var time = TimeSpan.FromMilliseconds(milliseconds);

            // TimeSpan 转 毫秒
            milliseconds = (long) Math.Ceiling(time.TotalMilliseconds);

这个计算适合在有天数和小时等的计算,如计算 1天 减去 3h10m 有多少毫秒,如果不使用 TimeSpan 自己重写,还是需要写很多代码

            var time = TimeSpan.FromDays(1);
            var cut = new TimeSpan(0, 3, 10, 0);
            var milliseconds = (long)(time - cut).TotalMilliseconds;

尝试不使用 TimeSpan 想想需要怎么写

在这里插入图片描述

知识共享许可协议
本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。欢迎转载、使用、重新发布,但务必保留文章署名林德熙(包含链接:http://blog.csdn.net/lindexi_gd ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请与我联系

免责声明:文章转载自《C# TimeSpan 时间计算》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇测量占空比php MP3文件下载功能的实现下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

VS2019 技巧

大家好,今天分享几个我知道的实用 VS 技巧,而这些技巧我发现很多人都不知道。因为我经常在工作中遇到:我在同事电脑上解决问题,或在会议上演示代码示例时,使用了一些 VS “骚”操作,他们会好奇地问:你是怎么做到的?这给我的感觉,有时候你知道一些别人不知道的小技巧便可以让你显得更专业。 PS:本文所有示例演示均基于 VS 2019 (v16.6.3)版本...

如何得到idea的Activation code

如何得到idea的Activation code   -- 源自CSDN 晨曦遇晓 原文链接 :https://blog.csdn.net/u014508939/article/details/93495234 以前公司都是使用eclipse进行开发,现在新的公司是使用idea工具,因为该软件是收费的 首次打开会让输入激活码,可以选择输入code的方式来激...

idea修改maven默认配置不生效

1.问题现象 我的idea版本是2019.2的,通过File->Other Setting->Setting for New Projects修改maven的默认配置后,新建项目maven默认配置不生效 2.解决 打开C:Users用户.IntelliJIdea2019.2configoptions下的project.default.xml,添...

git for windows占大内存,idea卡住

最近使用idea提交代码的时候,经常卡在vcs刷新的地方,跳过的话,修改的文件就无法识别,一直都是用sourcetree处理的。按照网上的方法尝试了n次,都失败了。。 失败的方法 修改idea的git配置 删除idea的vcs日志 重新拉取代码 卸载svn ... 解决方法 安装旧版的git 我前段时间升级了git,使用的是最新版的2.28,换回了旧版...

php发送get、post请求的几种方法

方法1: 用file_get_contents 以get方式获取内容 1 <?php 2 $url='http://www.domain.com/'; 3 $html = file_get_contents($url); 4 echo $html; 5 ?> 方法2: 用fopen打开url, 以get方式获取内容 1 &l...

Java反编译class

工具 工具使用jad(还有joda,jd等工具) 1、使用jad反编译class文件,jad可以配置到eclipse中当做插件,直接下载jad的eclipse插件jar包,放在eclipse的plugin目录下即可。把下载的jad.exe放在JAVA_HOME的bin下。然后eclipse中点击class文件即可查看到源码。 2、使用其他工具,FrontE...