我有这段代码在过去需要一段时间并生成一个可读的字符串来表示它是多久以前的。
我原以为 Timespan.Hours 会给你几个小时,即使它过去多天,但看起来它把它分解成单独的部分(天、月等)。我如何获得总小时数(即使超过 1 天?
有没有更简洁的方法可以在下面编写这种类型的代码,因为它看起来很意大利面。
这是代码
DateTime when = GetDateTimeinPast();
TimeSpan ts = DateTime.Now.Subtract(when);
switch (ts.Days)
{
case 0:
if (ts.Hours < 1)
b.Append( ts.Minutes + " minutes ago");
else
b.Append( ts.Hours + " hours ago");
break;
case 1:
b.Append( " yesterday");
break;
case 2:
case 3:
case 4:
b.Append( "on " + when.DayOfWeek.ToString());
break;
default:
b.Append(ts.Days + " days ago");
break;
}