C# 计算两个日期的时间间隔

简介: C# 计算两个日期的时间间隔

计算间隔


方法一:DateTime.Subtract(DateTime)


参数为两个datetime类型,返回的是处理后的字符串


如果不知道字符串怎样转化为DateTime 类型,可以参考我整理的另一篇博文:


https://yangyongli.blog.csdn.net/article/details/117649851


方法一用DateTime.Subtract(DateTime) 方法进行计算,其结果与方法1相同,表示用当前时间减去参数所代入的时间,返回一个TimeSpan


/// 计算两个日期的时间间隔
///
/// 第一个日期和时间
/// 第二个日期和时间
///
private string DateDiff(DateTime DateTime1, DateTime DateTime2)
{
  string dateDiff = null;
    TimeSpan ts1 = new TimeSpan(DateTime1.Ticks);
    TimeSpan ts2 = new TimeSpan(DateTime2.Ticks);
    TimeSpan ts = ts1.Subtract(ts2).Duration();
    dateDiff = ts.Days.ToString() + "天"
        + ts.Hours.ToString() + "小时"
        + ts.Minutes.ToString() + "分钟"
        + ts.Seconds.ToString() + "秒";
    return dateDiff;
}


方法二:直接相减


1、两个DateTime直接相减,得到一个TimeSpan,表示两个时间的间隔


DateTime dTimeEnd = examAirTime.AddMinutes(examPeriod); 
DateTime dTimeServer = dataClass.getDateServer(); 
TimeSpan ts = dTimeEnd - dTimeServer; 
TimeSpan ts2 = dTimeEnd.Subtract(dTimeServer); 
MessageBox.Show(ts.ToString() + "\n" + ts2.TotalMinutes.ToString());


知识说明:


1.DateTime值类型代表了一个从公元0001年1月1日0点0分0秒到公元9999年12月31日23点59分59秒之间的具体日期时刻。


因此,你可以用DateTime值类型来描述任何在想象范围之内的时间。一个DateTime值代表了一个具体的时刻。


2.TimeSpan值包含了许多属性与方法,用于访问或处理一个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值表示的秒数。


TimeSpan结构


TimeSpan结构表示一个时间间隔,按正负天数、小时数、分钟数、秒数以及秒的小数部分进行度量。


TimeSpan对象的文本(.tostring())“11.13:46:40”,表示 11 天,13 小时,46 分钟和 40 秒。


TimeSpan.TotalSeconds 属性:获取以整秒数和秒的小数部分表示的当前 TimeSpan 结构的值,可为负数。即将天、小时、分、秒转化为秒来显示。


TimeSpan的Days、Hours、minutes、seconds属性:分别用于获取时间间隔的天、小时、分、秒。


相关文章
|
1月前
|
C#
C# 技巧:如何确定日期时间范围的日周月季度半年
C# 技巧:如何确定日期时间范围的日周月季度半年
31 1
|
6月前
|
存储 安全 Unix
C#.Net筑基-类型系统②常见类型--日期和时间的故事
在System命名空间中,有几种表示日期时间的不可变结构体(Struct):DateTime、DateTimeOffset、TimeSpan、DateOnly和TimeOnly。DateTime包含当前本地或UTC时间,以及最小和最大值;DateTimeOffset增加了时区偏移信息,适合跨时区操作。UTC是世界标准时间,而格林尼治标准时间(GMT)不稳定,已被更精确的UTC取代。DateTimeOffset和DateTime提供了转换为UTC和本地时间的方法,以及各种解析和格式化函数。
|
6月前
|
算法 C#
23.c#计算敌人被玩家攻击的剩余血值
23.c#计算敌人被玩家攻击的剩余血值
49 0
|
11月前
|
算法 数据可视化 C#
C# | Chaikin算法 —— 计算折线对应的平滑曲线坐标点
本文将介绍一种计算折线对应的平滑曲线坐标点的算法。该算法使用Chaikin曲线平滑处理的方法,通过控制张力因子和迭代次数来调整曲线的平滑程度和精度。通过对原始点集合进行切割和插值操作,得到平滑的曲线坐标点集合。实验结果表明,该算法能够有效地平滑折线,并且具有较高的精度和可控性。
235 0
C# | Chaikin算法 —— 计算折线对应的平滑曲线坐标点
|
11月前
|
C#
C# 对于“日期时间(DateTime)“的处理 时间差计算
C# 对于“日期时间(DateTime)“的处理 时间差计算
|
传感器 机器人 数据处理
Baumer工业相机堡盟工业相机如何使用BGAPISDK的相机图像时间戳计算运行时间以及时间差(C#)
Baumer工业相机堡盟工业相机如何使用BGAPISDK的相机图像时间戳计算运行时间以及时间差(C#)
160 0
|
存储 数据采集 编解码
Baumer工业相机堡盟工业相机如何通过图像尺寸计算图像大小从而计算当前相机传输帧率(C#)
Baumer工业相机堡盟工业相机如何通过图像尺寸计算图像大小从而计算当前相机传输帧率(C#)
115 0
|
传感器 开发工具 C#
Baumer工业相机中偏振相机如何使用Baumer堡盟GAPI SDK来进行偏振数据的计算转换输出(C#)
Baumer工业相机中偏振相机如何使用Baumer堡盟GAPI SDK来进行偏振数据的计算转换输出(C#)
90 0
|
传感器 编解码 监控
Baumer工业相机堡盟工业相机如何通过BGAPISDK里的工具函数来计算工业相机的实时帧率(C#)
Baumer工业相机堡盟工业相机如何通过BGAPISDK里的工具函数来计算工业相机的实时帧率(C#)
69 0
|
C#
C# 两个DataGridView设置时间范围,开始日期小于结束日期
C# 两个DataGridView设置时间范围,开始日期小于结束日期
108 0