Asp.Net 利用TimeSpan类实现时间差计算 并返回所需字符串,类似于SNS

  今天做了一个类似于发微博的小Demo,其中有需要绑定时间的地方,我想实现跟腾讯微博上显示时间的方式差不多,于是到网上搜了一下TimeSpan类,然后我自己把算法写了一下与大家共享啊,没什么技术含量,只是分享,高手直接路过。直接贴代码吧!

/// <summary>
/// 求当前与发表时间的差值
/// </summary>
/// <param name="dt1">当前时间</param>
/// <param name="dt2">需要比较的时间</param>
/// <returns></returns>
public string TimeChaZhi(DateTime dt1, DateTime dt2)
{
TimeSpan sj1 = new TimeSpan(dt1.Ticks);
TimeSpan sj2 = new TimeSpan(dt2.Ticks);
TimeSpan sj = sj1.Subtract(sj2).Duration();
int day = sj1.Days - sj2.Days;
if (day > 3)
{
return Convert.ToDateTime(dt2).ToString("M月d日 HH:mm");
}
else if (day != 0)
{
if (day == 1)
{
return "昨天" + "&nbsp;" + Convert.ToDateTime(dt2).ToString("HH:mm");
}
else if (day == 2)
{
return "前天" + "&nbsp;" + Convert.ToDateTime(dt2).ToString("HH:mm");
}
else
{
return day.ToString() + "天前";
}
}
else if (sj.Hours != 0)
{
//24小时之间
if (Convert.ToInt32(dt1.Day) == Convert.ToInt32(dt2.Day))
{
return "今天" + "&nbsp;" + Convert.ToDateTime(dt2).ToString("HH:mm");
}
else
{
return "昨天" + "&nbsp;" + Convert.ToDateTime(dt2).ToString("HH:mm");
}
}
else if (sj.Minutes != 0)
{
return sj.Minutes.ToString() + "分钟前";
}
else if (sj.Seconds < 20)
{
return "刚刚";
}
else
{
return sj.Seconds.ToString() + "秒前";
}
}

  很简单,我也不解释了...

  PS:Tandy Tang祝大家写代码写的愉快!