Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何从字符串中重新分配DateTime.Now?_C#_Winforms - Fatal编程技术网

C# 如何从字符串中重新分配DateTime.Now?

C# 如何从字符串中重新分配DateTime.Now?,c#,winforms,C#,Winforms,守则: private void beginOperstionChecker(DateTime dt) { string time = Options_DB.Get_OperationLastTime(); DateTime.Now = time; } 例如,time now显示保存的datetime.now可以是分钟前或一小时前。 datetime.now在我的程序完成操作后保存 dt=当前日期时间现在我在构造函数中使用此方法 我要做的是计算上次保存的datetime.now

守则:

private void beginOperstionChecker(DateTime dt)
{
    string time = Options_DB.Get_OperationLastTime();
    DateTime.Now = time;
}
例如,time now显示保存的datetime.now可以是分钟前或一小时前。 datetime.now在我的程序完成操作后保存

dt=当前日期时间现在我在构造函数中使用此方法

我要做的是计算上次保存的datetime.nowtime和当前的datetime.nowdt之间经过的时间


如果经过的时间为20分钟或更长,则启用true按钮。

使用Parse从字符串中获取DateTime实例

DateTime dt = DateTime.Parse(time)
然后你就可以利用现在的时间了

DateTime.UtcNow; or DateTime.Now;
然后从另一个中减去一个,并根据您的输出设置适当的格式

您无法设置DateTime。现在您需要创建DateTime对象的实例

然后你可以说

TimeSpan diff = DateTime.Now - MyDateTime;
这有一个名为TotalMinutes的属性,可用于支票

if (diff.TotalMinutes >= 20)
{
   //Do sommething 
}
你可以试试这个代码

DateTime date;
if (DateTime.TryParse(time, out date))
{
    TimeSpan diff = date - dt;
        if (diff.TotalMinutes >= 20)
        {
          //Do sommething 
        }
}

每次运行此方法时,都需要将值持久化到某个位置。我将上次调用该变量。那将是一个约会时间。此外,还需要一个变量来表示这两者之间的实际运行时间,我们称之为_elapsedTime。这将是一个时间跨度。考虑到这一点,考虑这个代码:

private void beginOperstionChecker(DateTime dt)
{
    string time = Options_DB.Get_OperationLastTime();
    var dt = DateTime.Parse(time);

    _elapsedTime = dt.Subtract(_elapsedTime);
    _lastTime = dt;
}

您可以使用TimeSpan类检查经过的时间

private void beginOperstionChecker(DateTime dt)
{ 
    if(TimeSpan.FromMinutes(20) == DateTime.Now - dt)
    {
        //do your stuff here
    } 
}
您可以使用TimeSpan执行此操作。 你需要在几分钟内得到差异


我认为你在寻找这个:

private void beginOperstionChecker(DateTime dt)
{
        string time = Options_DB.Get_OperationLastTime();
        DateTime lastTime  = DateTime.Parse(time);
        if (DateTime.Now - lastTime > new TimeSpan(0, 20, 0))
        {
            //It's passed more than 20mins from last save.
        }
}

为什么要立即分配日期时间?你的意思是改变系统时间?这显然是时间旅行。
private void beginOperstionChecker(DateTime dt)
{
        string time = Options_DB.Get_OperationLastTime();
        DateTime lastTime  = DateTime.Parse(time);
        if (DateTime.Now - lastTime > new TimeSpan(0, 20, 0))
        {
            //It's passed more than 20mins from last save.
        }
}