我的持续时间包含帧:
e.g1: 00:00:00:00
hh:mm:ss:FR
FR-代表中东/亚洲地区为25帧的帧。
但是在C#中,它将最后的FR作为秒(即60秒)。
e.g2: 00:00:00:00
DD:hh:mm:ss
现在如何在C#中添加e.g1
我可以用这种格式知道如何增加两个时长。
TimeSpan t1 = TimeSpan.Parse(duration);
TimeSpan t2 = TimeSpan.Parse("00:00:30:18");
TimeSpan t3 = t1.Add(t2);
最佳答案
在此持续时间内,"00:00:30:18"
18被认为是毫秒而不是帧,因此Timespan.Duration
不适用于您,并且您需要一些自定义项(用于显示可能会起作用,但不能加减):
public static class Extensions
{
public static TimeSpan AddWithFrames(this TimeSpan x, TimeSpan ts)
{
int fr = ts.Seconds + x.Seconds;
TimeSpan result = x.Add(ts).Add(new TimeSpan(0,0,fr/25,0));
return new TimeSpan(result.Days, result.Hours, result.Minutes, fr % 25);
}
}
并像这样使用它:
TimeSpan t1 = TimeSpan.Parse(duration);
TimeSpan t2 = TimeSpan.Parse("00:00:30:18");
TimeSpan t3 = t1.AddWithFrames(t2);
关于c# - 添加包含帧的持续时间,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53896706/