如何从 TimeSpan 变量获取经过的时间到当前时间

How to get elapsed time from a TimeSpan variable to the current time

我正在尝试保留我的计时器,我在列表视图中有一个项目列表,因此当用户启动任何项目时,我想保留任何项目的计时器。我有一个时间跨度变量,它接受一个整数变量总时间,它被转换为分钟

   //Get total time and convert to minutes
   _TimeSpan = TimeSpan.FromMinutes(TimeSheet.TotalTime);

如何从 _TimeSpan 变量中获取运行时间,就像使用 DateTime.Now 一样,下面的示例使用 DateTime.Now 获取运行时间:

            var startAt = DateTime.Now;
            Application.Current.Properties["StartedAt"] = startAt;


            Device.StartTimer(TimeSpan.FromSeconds(1), () =>
            {
                if (cts.IsCancellationRequested)
                {
                    return false;
                }
                else
                {
                    Device.BeginInvokeOnMainThread(() =>
                    {

                        TimeSpan _TimeSpan = DateTime.Now - startAt;


                        TxtTimer = _TimeSpan.ToString(@"hh\:mm\:ss");


                    });

                    return true;
                }

            });

您可以使用TimeSpan.Subtract,然后传递您的解析值和当前时间。您可以使用 DateTime.Now.TimeOfDay.

获取当前时间 TimeSpan

所以最后的结果应该是:

var difference = DateTime.Now.TimeOfDay.Subtract(_TimeSpan);