我需要帮助我的时间差异脚本的最后一部分显示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();
}
答案 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只返回那个时间跨度的分钟和秒部分。