c#返回文章发表时间差的代码,假如现在的时间是2012-12-04 11:29:59,发表时间为:2012-12-02 21:29:59,在c#中ts.Days因为值为1天14小时0分0秒,会返回“昨天”。
本文中为大家提供的代码,能够比较精确的返回“前天”。有需要的朋友可以参考下。
public static string
datediff(DateTime DateTime1, DateTime DateTime2)
{
string dateDiff = null;
int date = 0;
try
{
int year = Convert.ToInt32(DateTime2.ToString("yyyy")) - Convert.ToInt32(DateTime1.ToString("yyyy"));
TimeSpan ts = DateTime2 - DateTime1;
string t1 = DateTime1.ToString("yyyy-MM-dd");
string t2 = DateTime2.ToString("yyyy-MM-dd");
DateTime d1 = DateTime.Parse(t1);
DateTime d2 = DateTime.Parse(t2);
TimeSpan ts2 = d2 - d1;
date = ts2.Days;
if (date == 0)
{
if (ts.Hours > 1)
{
dateDiff = ts.Hours.ToString() + "小时前";
}
else
{
if (ts.Minutes > 1)
{
dateDiff = ts.Minutes.ToString() + "分钟前";
}
else
{
dateDiff = ts.Seconds.ToString() + "秒前";
}
}
}
else
{
if (date == 1)
{
dateDiff = "昨天";
}
else
{
if (date == 2)
{
dateDiff = "前天";
}
else
{
if (year == 0)
{
dateDiff = DateTime1.Month.ToString() + "月" + DateTime1.Day.ToString() + "日";
}
else
{
dateDiff = DateTime1.Year.ToString() + "年" + DateTime1.Month.ToString() + "月" + DateTime1.Day.ToString() + "日";
}
}
}
}
}
catch
{ }
return dateDiff;
}