datedif函数mysql_【笔记】计算两个时间之间的值

前言

昨天接到经理的BUG通知,说是计费这个地方有些BUG,让我来做个修改,看了一下午的代码,终于找到错误的原因了,现在做个简单的笔记吧,方便以后看。

原始错误

int totalhours = (DateTime.Parse(EndTime.ToString("yyyy-MM-dd HH:mm:ss")) - DateTime.Parse(StartTime.ToString("yyyy-MM-dd HH:mm:ss"))).Hours;

这个错误的结果是6个小时,而我真实相差的是54个小时。根据这个错误,我找了一些资料,并写了一个案例,避免各位同僚,犯这个错误。

知识点

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

案例代码

// 第一个存入时间DateTime StartTime = DateTime.Now.AddHours(-54.2);// 第二个取出时间DateTime EndTime = DateTime.Now;// 计算之间的时间TimeSpan TotalTime = EndTime - StartTime;// 两个时间之间的天数string days = TotalTime.Days.ToString();// 两个时间之间的小时string hours = TotalTime.Hours.ToString();// 两个时间之间的分钟string minutes = TotalTime.Minutes.ToString();Console.WriteLine("之前时间:" + StartTime + Environment.NewLine + "当前时间:" + EndTime + Environment.NewLine + "相差时间:");Console.WriteLine("天:" + days + Environment.NewLine + "小时:" + hours + Environment.NewLine + "分钟" + hours);// 总计多少天string TotalDays = TotalTime.TotalDays.ToString();// 总计多少小时string TotalHours = TotalTime.TotalHours.ToString();// 总计多少分钟string TotalMinute = TotalTime.TotalMinutes.ToString();// 总计多少秒string TotalMilliseconds = TotalTime.TotalMilliseconds.ToString();Console.WriteLine("两个时间相差 " + TotalDays + "天");Console.WriteLine("两个时间相差 " + TotalHours + "小时");Console.WriteLine("两个时间相差 " + TotalMinute + "分钟");Console.WriteLine("两个时间相差 " + TotalMilliseconds + "秒");

代码下载

高速下载

本文地址:https://www.xsyrz.cn/course/C-Computing-Time.html

版权声明:本文为原创文章,版权归 QingShanNET 所有,欢迎分享本文,转载请保留出处!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值