两次之间的差异?

时间:2010-12-15 12:25:10

标签: c#

StartCopying = DateTime.Now;
File.Copy(@"C:\Users\sshap5x\Desktop\line4\shiraDebbi\Hackers.avi", @"C:\Users\sshap5x\Desktop\test\Hackers.avi", true);

EndCopying = DateTime.Now;
CopyingTime1 = (endCopying - startCopying).Duration;

我的代码有什么问题?

复制时间是TimeSpan对象。

3 个答案:

答案 0 :(得分:5)

作业分配给StartCopyingEndCopying,但您可以阅读其他变量startCopyingendCopying中的数据。
C#区分大小写。
持续时间也是一种方法。所以你需要使用.Duration()
正如您对问题的评论中所建议的那样,为了更好地解决问题,请使用Stopwatch类。

答案 1 :(得分:3)

// This prints 0.1 (roughly)
DateTime start = DateTime.Now;
Thread.Sleep(100);
var diff = DateTime.Now - start;
Console.WriteLine(diff.TotalSeconds);

在你的代码中(甚至不编译)你使用.Duration作为属性,而它实际上是一个方法。在任何情况下,您根本不需要调用持续时间,因为减法返回的结果是包含差异的TimeSpan。然后,您可以以您需要的任何格式(毫秒,秒,小时,天等)获得此差异。

Duration方法的唯一需要是,如果您不确定结果是否为正或负。

答案 2 :(得分:1)

您是否忘记了变量EndCopying和StartCopying的持续时间和大小写的()?

        DateTime StartCopying = DateTime.Now;
        DateTime EndCopying = DateTime.Now;
        TimeSpan CopyingTime1 = (EndCopying - StartCopying).Duration();