详解C# TimeSpan 计算时间差(时间间隔)

2019-12-30 15:36:27王振洲

比如1天12小时结果就是1.5

int nDays = ts.Days;//整数天数,1天12小时或者1天20小时结果都是1


/// <summary>
/// 日期比较
/// </summary>
/// <param name="today">当前日期</param>
/// <param name="writeDate">输入日期</param>
/// <param name="n">比较天数</param>
<returns>大于天数返回true,小于返回false</returns>
private bool CompareDate(string today, string writeDate, int n)
{
DateTime Today = Convert.ToDateTime(today);
DateTime WriteDate = Convert.ToDateTime(writeDate);
WriteDate = WriteDate.AddDays(n);
if (Today>= WriteDate)
return false;
else
return true;
}

在定义Date数据类型时候,必须注意下面三点:

1. Date数值必须以数字符号"#"括起来。

2. Date数值中的日期数据可有可无,如果有必须符合格式"m/d/yyyy"。

3. Date数值中的时间数据可有可无,如果有必须和日期数据通过空格分开,并且时分秒之间以":"分开。

一.DateTime和TimeSpan的关系和区别:

DateTime和TimeSpan是Visual Basic .Net中用以处理时间日期类型数据的二个主要的结构,这二者的区别在于,DatTime表示一个固定的时间,而TimeSpan表示的是一个时间间隔, 即一段时间。在下面介绍的程序示例中,TimeSpan就用以当前时间和给定时间之差。

二.DateTime和TimeSpan中的常用成员及其说明:

DateTime结构和TimeSpan结构提供了丰富的方法和属性,

属性 说明

Date 获取此实例的日期部分。 Day 获取此实例所表示的日期为该月中的第几天。 DayOfWeek 获取此实例所表示的日期是星期几。 DayOfYear 获取此实例所表示的日期是该年中的第几天。 Hour 获取此实例所表示日期的小时部分。 Millisecond 获取此实例所表示日期的毫秒部分。 Minute 获取此实例所表示日期的分钟部分。 Month 获取此实例所表示日期的月份部分。 Now 创建一个DateTime实例,它是此计算机上的当前本地日期和时间。 Second 获取此实例所表示日期的秒部分。 TimeOfDay 获取此实例的当天的时间。 Today 获取当前日期。 Year 获取此实例所表示日期的年份部分。 Add 将指定的TimeSpan的值加到此实例的值上。 AddDays 将指定的天数加到此实例的值上。 AddHours 将指定的小时数加到此实例的值上。 AddMilliseconds 将指定的毫秒数加到此实例的值上。 AddMinutes 将指定的分钟数加到此实例的值上。 AddMonths 将指定的月份数加到此实例的值上。 AddSeconds 将指定的秒数加到此实例的值上。 AddYears 将指定的年份数加到此实例的值上。 DaysInMonth 返回指定年份中指定月份的天数。 IsLeapYear 返回指定的年份是否为闰年的指示。 Parse 将日期和时间的指定字符串表示转换成其等效的DateTime实例。 Subtract 从此实例中减去指定的时间或持续时间。 ToLongDateString 将此实例的值转换为其等效的长日期字符串表示形式。 ToLongTimeString 将此实例的值转换为其等效的长时间字符串表示形式。 ToShortTimeString 将此实例的值转换为其等效的短时间字符串表示形式。 ToShortDateString 将此实例的值转换为其等效的短日期字符串表示形式。