asp.net 中,两个时间相减,得到一个 timespan 实例,timespan 有一些属性:days、totaldays、hours、totalhours、minutes、totalminutes、seconds、totalseconds、ticks,注意没有 totalticks。
一、timespan常量、字段
timespan.maxvalue; // 10675199.02:48:05.4775807
timespan.minvalue; //-10675199.02:48:05.4775808
timespan.zero; // 0.00:00:00.0
timespan.ticksperday; //一天的 tick 数: 864000000000
timespan.ticksperhour; //一小时的 tick 数: 36000000000
timespan.tickspermillisecond; //一毫秒的 tick 数: 10000
timespan.ticksperminute; //一分钟的 tick 数: 600000000
timespan.tickspersecond; //一秒钟的 tick 数: 10000000
二、timespan静态方法
timespan.compare(); //对比
timespan.equals(); //=
timespan.fromdays(); //从天数建立
timespan.fromhours(); //从小时数建立
timespan.frommilliseconds(); //从毫秒数建立
timespan.fromminutes(); //从分钟数建立
timespan.fromseconds(); //从秒数建立
timespan.fromticks(); //从 tick 数建立
timespan.parse(); //从字符串建立
timespan.parseexact(); //从指定格式的字符串建立
timespan.tryparse(); //尝试从字符串建立
timespan.tryparseexact(); //尝试从指定格式的字符串建立
三、timespan属性
days; //天部分 hours; //小时部分
milliseconds; //毫秒部分
minutes; //分部分
seconds; //秒部分
ticks; //tick 总数
totaldays; //总天数
totalhours; //总小时数
totalmilliseconds; //总毫秒数
totalminutes; //总分钟数
totalseconds; //总秒数
四、timespan方法
add(); // + compareto(); //比对
duration(); //绝对值
equals(); //
negate(); //取反, + > -、- > +
subtract(); // -, add()的反操纵
tostring(); //格式化到字符串, .net 4.0 较之前版本有变动
五、timespan构建对象
protected void button1_click(object sender, eventargs e)
...{
timespan t1 = new timespan(864000000000); //1.00:00:00
timespan t2 = new timespan(23, 59, 59); //23:59:59
timespan t3 = new timespan(30, 23, 59, 59); //30.23:59:59
timespan t4 = new timespan(30, 23, 59, 59, 999); //30.23:59:59.9990000
double f = 365.25;
timespan t5 = timespan.fromdays(f); //365.06:00:00
timespan t6 = timespan.fromhours(f * 24); //365.06:00:00
timespan t7 = timespan.fromminutes(f * 24 * 60); //365.06:00:00
timespan t8 = timespan.fromseconds(f * 24 * 60 * 60); //365.06:00:00
timespan t9 = timespan.frommilliseconds(f * 24 * 60 * 60 * 1000); //365.06:00:00
timespan t0 = timespan.fromticks((long)(f * 24 * 60 * 60 * 1000 * 10000)); //365.06:00:00
textbox1.text = string.format({0}n{1}n{2}n{3}n{4}n{5}n{6}n{7}n{8}n{9},
t1, t2, t3, t4, t5, t6, t7, t8, t9, t0
);
}
求离最近发表时间的函数
public string datestringfromnow(datetime dt)
{
timespan span = datetime.now - dt;
if (span.totaldays > 60)
{
return dt.toshortdatestring();
}
else if ( span.totaldays > 30 )
{
return 1个月前;
}
else if (span.totaldays > 14)
{
return 2周前;
}
else if (span.totaldays > 7)
{
return 1周前;
}
else if (span.totaldays > 1)
{
return string.format({0}天前, (int)math.floor(span.totaldays));
}
else if (span.totalhours > 1)
{
return string.format({0}小时前, (int)math.floor(span.totalhours));
}
else if (span.totalminutes > 1)
{
return string.format({0}分钟前, (int)math.floor(span.totalminutes));
}
else if (span.totalseconds >= 1)
{
return string.format({0}秒前, (int)math.floor(span.totalseconds));
}
else
{
return 1秒前;
}
}
datetime和timespan中的常用成员及其说明
属性说明
date获取此实例的日期部分。
day获取此实例所表示的日期为该月中的第几天。
dayofweek获取此实例所表示的日期是星期几。
dayofyear获取此实例所表示的日期是该年中的第几天。
hour获取此实例所表示日期的小时部分。
millisecond获取此实例所表示日期的毫秒部分。
minute获取此实例所表示日期的分钟部分。
month获取此实例所表示日期的月份部分。
now创建一个datetime实例,它是此计算机上的当前本地日期和时间。
second获取此实例所表示日期的秒部分。
timeofday获取此实例的当天的时间。
today获取当前日期。
year获取此实例所表示日期的年份部分。
表01:datetime类的常用属性及其说明
方法说明
add将指定的timespan的值加到此实例的值上。
adddays将指定的天数加到此实例的值上。
addhours将指定的小时数加到此实例的值上。
addmilliseconds将指定的毫秒数加到此实例的值上。
addminutes将指定的分钟数加到此实例的值上。
addmonths将指定的月份数加到此实例的值上。
addseconds将指定的秒数加到此实例的值上。
addyears将指定的年份数加到此实例的值上。
daysinmonth返回指定年份中指定月份的天数。
isleapyear返回指定的年份是否为闰年的指示。
parse将日期和时间的指定字符串表示转换成其等效的datetime实例。
subtract从此实例中减去指定的时间或持续时间。
tolongdatestring将此实例的值转换为其等效的长日期字符串表示形式。
tolongtimestring将此实例的值转换为其等效的长时间字符串表示形式。
toshorttimestring将此实例的值转换为其等效的短时间字符串表示形式。
toshortdatestring将此实例的值转换为其等效的短日期字符串表示形式。
表02:datetime结构的常用方法及其说明
表03和表04分别是timespan结构的常用属性和常用方法及其说明:
属性说明
days获取由此实例表示的整天数。
hours获取由此实例表示的整小时数。
milliseconds获取由此实例表示的整毫秒数。
minutes获取由此实例表示的整分钟数。
seconds获取由此实例表示的整秒数。
ticks获取用刻度表示的此实例的值。
totaldays获取以整天数和天的小数部分表示的此实例的值。
totalhours获取以整小时数和小时的小数部分表示的此实例的值。
totalmilliseconds获取以整毫秒数和毫秒的小数部分表示的此实例的值。
totalminutes获取以整分钟数和分钟的小数部分表示的此实例的值。
totalseconds获取以整秒数和秒的小数部分表示的此实例的值。
表03:timespan结构的常用属性及其说明
方法说明
add将指定的timespan添加到此实例中。
duration返回其值为此实例的绝对值的timespan。
fromdays返回表示指定天数的timespan,其中对天数的指定精确到最接近的毫秒。
fromhours返回表示指定小时数的timespan,其中对小时数的指定精确到最接近的毫秒。
frommilliseconds返回表示指定毫秒数的timespan。
fromminutes返回表示指定分钟数的timespan,其中对分钟数的指定精确到最接近的毫秒。
fromseconds返回表示指定秒数的timespan,其中对秒数的指定精确到最接近的毫秒。
subtract从此实例中减去指定的timespan。
表04:timespan结构的常用方法及其说明
更多信息请查看IT技术专栏