如何从字符串中分配DateTime.Now?

时间:2013-11-21 09:26:15

标签: c# winforms

代码:

private void beginOperstionChecker(DateTime dt)
{
    string time = Options_DB.Get_OperationLastTime();
    DateTime.Now = time;
}

现在时间例如显示保存的datetime.now可能是分钟前或小时ao。 我的程序完成后,将保存datetime.now以进行操作。

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

我想要做的是计算上次保存的datetime.now(时间)和当前datetime.now(dt)之间的时间。

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

6 个答案:

答案 0 :(得分:5)

您无法设置DateTime.Now您需要创建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 
        }
}

答案 1 :(得分:2)

每次运行此方法时,都需要在某处保留值。我将调用该变量_lastTime。这将是一个DateTime。此外,您需要一个变量来表示这两者之间的实际经过时间,我们称之为_elapsedTime。这将是一个TimeSpan。考虑到这一点,请考虑以下代码:

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

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

答案 2 :(得分:1)

使用Parse

从字符串中获取DateTime的实例
DateTime dt = DateTime.Parse(time)

然后你得到时间现在使用

DateTime.UtcNow; or DateTime.Now;

并从另一个中减去一个并根据您的输出格式化

答案 3 :(得分:1)

您可以使用TimeSpan类检查已用时间。

private void beginOperstionChecker(DateTime dt)
{ 
    if(TimeSpan.FromMinutes(20) == DateTime.Now - dt)
    {
        //do your stuff here
    } 
}

答案 4 :(得分:1)

您可以使用TimeSpan执行此操作。  您需要获取Difference

中的Minutes
DateTime dt1;//get your first date

TimeSpan duration = DateTime.Now - dt1;
if(duration.Minutes>20)
Button1.Enabled=true;

答案 5 :(得分:1)

我认为你在寻找这个:

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.
        }
}