显示分钟和秒仅显示0

时间:2012-03-06 04:14:59

标签: asp.net c#-4.0

我需要帮助我的时间差异脚本的最后一部分显示0分0秒我希望有人能为我解决这个问题。

mu is MembershupUser
PrintTimeSpan1(DateTime.Now - mu.LastActivityDate);

public string PrintTimeSpan1(TimeSpan p)
{
    var sb = new StringBuilder();
    if (p.Days > 365)
        sb.AppendFormat("{0} yr, ", (int)Math.Floor(p.TotalDays / 365));
    if (p.Days % 365 > 30) 
        sb.AppendFormat("{0} months, ", (p.Days % 365) / 30);
    if (p.Days % 365 % 30 > 7)
        sb.AppendFormat("{0} weeks, ", p.Days % 365 % 30 / 7);
    if (p.Days % 365 % 30 % 7 > 0)
        sb.AppendFormat("{0} days, ", p.Days % 365 % 30 % 7);
    if (p.Hours > 0)
        sb.AppendFormat("{0} hrs, ", p.Hours);
    if (p.Minutes > 0)
        sb.AppendFormat("{0} mins, ", p.Minutes);
    if (p.Seconds > 0)
        sb.AppendFormat("{0} seconds ,", p.Seconds); 
    if (sb.Length > 2)
    {
        sb.Remove(sb.Length - 2, 2); // remove the last ", " part. 
    }

    return sb.ToString();
}

1 个答案:

答案 0 :(得分:2)

% 59有什么用?分钟包含分钟数,秒数包含秒数。这应该是你所需要的一切。

如果你必须计算余数,那不应该是% 60吗?但是为什么这里需要它呢?

if (p.Minutes > 0)
    sb.AppendFormat("{0} mins, ", p.Minutes);
if (p.Seconds > 0)
    sb.AppendFormat("{0} seconds ,", p.Seconds);

请注意,TotalMinutes和TotalSeconds包含整个时间跨度内的分钟数和秒数。但是Minutes and Seconds只返回那个时间跨度的分钟和秒部分。