У меня есть приложение, в котором я буду отображать таймер.
Пользователь будет выполнять событие и должен завершить его за определенное время. В настоящее время у меня есть таймер, который показывает их время, но сейчас мне нужно общее накопленное время. Таким образом, каждый раз, когда начинается новое событие, время его завершения добавляется к их накопленному времени. Затем, когда они выполняют событие, время отсчитывает накопленное время.
Это то, что у меня есть для "текущего таймера"
u.StartingTime = u.ChangeOverStandard;
u.CurrentChangeOverTime = u.StartingTime - (DateTime.Now - u.ChangeOverStart);
Все эти поля являются временными интервалами. Это идеально работает для их «текущего» таймера.
Но мне нужен «общий» таймер, который будет либо показывать положительное значение временного промежутка... если они будут выполнены раньше, чем они должны... или отрицательное значение временного промежутка, если они занимают слишком много времени.
РЕДАКТИРОВАТЬ:
Итак, я хочу добиться этого:
Например: для «события 1» у пользователя есть 30 сек. в конец. Затем у пользователя есть свойство «TotalTimespan» = 30. Это общее количество уменьшается с помощью таймера события. Допустим, он заканчивает за 24 секунды. Это означает, что у него осталось 6 секунд в TotalTimespan. Тогда «событие 2» должно быть завершено за 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;