Полагаю, вы хотите полностью игнорировать тот факт, что время меняется примерно на 3 дня. В этом случае, если вы возьмете остаток после деления на 86400 (количество секунд в дне) и передадите его в TimeSpan.FromSeconds, вы должны получить то, что хотите:
TimeSpan currentTs = TimeSpan.FromSeconds(43995 % 86400); //12:13:15
TimeSpan towTime = TimeSpan.FromSeconds(303072 % 86400); //12:11:12, ignoring the 3 days.
double timeDifference = (currentTs - towTime).TotalMinutes;
Я получил значение timeDifference
как 2,05, когда попробовал это.
Конечно, если currentTs
раньше, чем towTime
(возможно, потому что между ними наступает полночь), разница во времени будет отрицательной. Если вы все еще хотите посчитать количество минут между ними, предполагая, что currentTs
всегда следует за towTime
, то вам нужно добавить 1440 (количество минут в дне) к timeDifference
, если оно работает отрицательный:
if (timeDifference < 0)
{
timeDifference += 1440;
}