这是我在网上看到的关于时间间隔的帖子,写得非常棒。 读了马上就明白了。 土着地址: http://blog.Sina.com.cn/s/blog _ 66a 054 e 50100 hxcb.html
ASP.NET将两个时间相减,得到一个TimeSpan实例。 TimeSpan具有Days、TotalDays、Hours、TotalHours、Minutes、TotalMinutes、Seconds和TotalHours等属性
虽然理解这些属性名称有点困难,但读了本文后,相应的你一定会茅塞顿开。
举例说明
时间1是2010-1-2 8:43:35; 时间2是2010-1-12 8:43:34。 从时间2减去时间1,得到TimeSpan实例。
时间2比时间1多9天,为23小时59分59秒。
那么,Days是9,Hours是23,Minutes是59,Seconds是59。
来看看Ticks吧。 Tick是表示100纳秒,也就是1千万分之一秒的计时周期。 那么Ticks在这里表示合计几个小时周期的差异? 也就是说,9 * 24 * 3600 * 100000023 * 3600 * 10000059。3600是一小时的秒数。
TotalDays将Ticks换算为天数,为8639990000000/(10000000 * 24 * 3600 )=9.99998842592593。
TotalHours将Ticks换算为时间数,为8639990000000/(10000000*3600 )=239.999722222222。
所谓TotalMinutes是将Ticks变换为成分分数的结果,是8639990000000/(1000000 * 60 (=14399.9833333333 )。
TotalSeconds是将Ticks换算成秒数后的结果,863999000000/(10000000 )=863999。
负数
上面的内容是较晚的日期减去较早的日期,所以每个属性值都是正数,如果是较早的日期减去较晚的日期,则属性值为负数。
TimeSpan (
int days,
int hours,
int minutes,
输入密码
)
求接近最近发表时间的函数
公共数据字符串帧(datetime dt ) )。
{
TimeSpan span=DateTime.Now - dt;
(span.total days 60 ) )。
{
return dt.ToShortDateString (;
}
elseif(span.totaldays30 ) )。
{
返回'一个月前';
}
elseif(span.totaldays14 ) )。
{
return '2 '两周前';
}
ELSEif(span.totaldays7) )。
{
返回'一周前';
}
ELSEif(span.totaldays1) )。
{
returnstring.format('{0}日前),(int ) math.floor ) span.totaldays );
}
elseif(span.totalhours1) )。
{
returnstring.format('{0}时间前),(int ) math.floor ) span.totalhours );
}
ELSEif(span.totalminutes1) )。
{
returnstring.format('{0}分钟前),(int ) math.floor ) span.totalminutes );
}
elseif(span.totalseconds=1) )。
{
returnstring.format('{0}秒前),(int ) math.floor ) span.totalseconds );
}
else
{
return '1秒前';
}
}
C#使用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;
}
TimeSpan ts = Date1 - Date2;
double dDays = ts.TotalDays;//带小数的天数,比如1天12小时结果就是1.5
int nDays = ts.Days;//整数天数,1天12小时或者1天20小时结果都是1
说明:
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值表示的秒数。
/// <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;
}
转载于:https://www.cnblogs.com/lyy445910200/p/4977967.html