首页 > 解决方案 > 如何获取从 TimeSpan 变量到当前时间的经过时间

问题描述

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

   //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;
                }

            });

标签: c#xamarin.formsmvvm

解决方案


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

所以最终的结果应该是:

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

推荐阅读