【发布时间】:2012-06-25 21:06:02
【问题描述】:
我有一个应用程序,我将在其中显示计时器。
用户将执行一个事件并应在一定时间内完成它。 我目前有一个计时器,可以显示他们的时间滴答作响,但我现在想要的是总累积时间。因此,每次新事件开始时,完成事件的时间都会添加到它们的累积时间中。然后,当他们执行事件时,时间会在累积的时间上打勾。
这就是我的“当前计时器”
u.StartingTime = u.ChangeOverStandard;
u.CurrentChangeOverTime = u.StartingTime - (DateTime.Now - u.ChangeOverStart);
所有这些字段都是时间跨度。这非常适合他们的“当前”计时器
但我需要一个“总”计时器,它要么显示正的时间跨度值……如果它们在他们应该完成之前完成……或者如果它们花费的时间太长,则显示负的时间跨度值。
编辑:
所以我想实现这个:
例如:对于“事件 1”,用户有 30 秒。结束。然后用户有一个“TotalTimespan”属性= 30。这个总数随着事件计时器而减少。假设他在 24 秒内完成。这意味着他在 TotalTimespan 中还剩 6 秒。然后“event2”必须在 40 秒内完成。所以在 event2 开始时,TotalTimespan = TotalTimespan(6) + 40. = 46。如果用户使用 60 秒,那么 TotalTimespan = 46 -60 = -14。
“定时器”不是定时器,不能用作定时器。它在后台工作人员上运行,后台工作人员也在进行其他一些计算。所以我不能一秒一秒地取消时间。
在每个新活动中,我都尝试过
u.AccumulatedTime += u.ChangeOverStandard;
然后
u.AccumulatedTime -= u.StartingTime - (DateTime.Now - u.ChangeOverStart);
但这显然行不通,因为它通过我的循环从每一轮的累积时间中花费总经过的时间
DateTime.Now - u.ChangeOverStart
^^会给我从活动开始到现在经过的时间,这就是我想要的吗?
u.AccumulatedTime -= DateTime.Now - u.ChangeOverStart;
【问题讨论】:
-
我不知道如何计算总数。我知道它必须很简单,只是想不通。我需要一个总计..所以每次我将我的“标准”添加到总计中并倒计时直到用户完成
-
嗯,问题是......你想要达到什么。例如:对于“事件 1”,用户有 30 秒。结束。然后用户有一个“TotalTimespan”属性= 30。这个总数随着事件计时器而减少。假设他在 24 秒内完成。这意味着他在 TotalTimespan 中还剩 6 秒。然后“event2”必须在 40 秒内完成。所以在 event2 开始时,TotalTimespan = TotalTimespan(6) + 40. = 46。如果用户使用 60 秒,那么 TotalTimespan = 46 -60 = -14。我明白了吗?
-
顺便说一下,你可以多写一点代码,也许……
-
完全正确。我不想发布很多代码,因为我知道这会引起混乱..我会编辑我的帖子