Если Вы только хотите исправить предпоследнюю фиксацию (например, недавно, особенно не перед многими ответвлениями и слияниями), то я использую эту процедуру:
git checkout -b tmp bad-commit
git commit --amend
git rebase tmp master
, Если у Вас есть промежуточные слияния, можно хотеть попробовать rebase -i -p
, но результаты могут варьироваться.
Умножение легко:
TimeSpan a5 = TimeSpan.FromTicks(A.Ticks * 5);
Аналогично A / B:
double aOverB = (double)A.Ticks / B.Ticks;
И A% B:
TimeSpan aModB = TimeSpan.FromTicks(A.Ticks % B.Ticks);
Демонстрация:
using System;
class Test
{
static void Main()
{
TimeSpan a = TimeSpan.FromSeconds(90);
TimeSpan b = TimeSpan.FromSeconds(20);
TimeSpan a5 = TimeSpan.FromTicks(a.Ticks * 5);
double aOverB = (double)a.Ticks / b.Ticks;
TimeSpan aModB = TimeSpan.FromTicks(a.Ticks % b.Ticks);
Console.WriteLine(a5);
Console.WriteLine(aOverB);
Console.WriteLine(aModB);
}
}
Вывод:
00:07:30
4.5
00:00:10
Что-нибудь вроде
new TimeSpan( A.Ticks % B.Ticks))
даст вам желаемый результат? Подойдет ли Ticks для этой работы? Возможно, вам нужно преобразовать диапазон в секунды или миллисекунды или что-то в этом роде. Я не знаю, какое у вас приложение для этого.
Если вы можете преобразовать временной интервал в количество секунд, которое он представляет, вы можете изменить эти значения, а затем преобразовать обратно.
Я бы не стал делать это напрямую с объектом timespan, но использовал бы способность тиков.
Что-то вроде этого.
TimeSpan oSpan = new TimeSpan(0, 1, 20, 0, 0);
TimeSpan oShort = new TimeSpan(0, 0, 20, 0, 0);
long modRemainder = oSpan.Ticks % oShort.Ticks;
TimeSpan oRemainderSpan = new TimeSpan(modRemainder);
Вы можете сжать это до 1 шага, но я сделал это для иллюстрации. Это позволяет легко и просто выполнять любые математические операции, которые вы пожелаете.
Лучшее, что я могу придумать, - это использовать свойство TotalSeconds и модулировать его. Однако они Double, допускают дробные значения и, следовательно, могут не достигать точных значений, которые вы ищете. Вы всегда можете получить целые части и разделить их по модулю, но поскольку вы беспокоитесь о скорости, я боюсь, что это может быть слишком медленно для операции, которая должна выполняться сотни раз в секунду.