Отображать минуты и секунды отображает только 0 - PullRequest
0 голосов
/ 06 марта 2012

Мне нужна помощь с последней частью моего скрипта разницы во времени, он отображает 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 Ответ

2 голосов
/ 06 марта 2012

Что с % 59?Минуты содержит количество минут, а Секунды - количество секунд.Это должно быть все, что вам нужно.

Если вам нужно было рассчитать остаток, не должно ли это быть % 60?Но зачем это здесь вообще нужно?

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

Обратите внимание, что TotalMinutes и TotalSeconds содержат количество минут и секунд за весь промежуток времени.Но минуты и секунды просто возвращают минуты и секунды этого промежутка времени.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...