2013-11-21 4 views
0

Код:Как мне вернуть DateTime.Now из строки?

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

время, например, показать сохраненный datetime.now может быть минуту назад или час ао. datetime.now сохраняется после завершения моей программы, чтобы выполнить операцию.

dt = текущий datetime теперь я использую этот метод в конструкторе.

Что я хочу сделать, это вычислить время, прошедшее между последним сохраненным datetime.now (time) и текущим datetime.now (dt).

Если пройденное время составляет 20 минут или более, включите функцию true.

+1

Почему вы хотите назначить 'DateTime.Now'? вы хотите изменить системное время? –

+4

Это, несомненно, будет путешествием во времени. –

ответ

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

Вы получаете экземпляр DateTime из строки, используя Разбор

DateTime dt = DateTime.Parse(time) 

и тогда вы получите получить время с помощью

DateTime.UtcNow; or DateTime.Now; 

и вычитать одно из другого и формат, подходящий для вы выводите

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

Вы можете проверить время, прошедшее с использованием класса TimeSpan.

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

Вы можете сделать это, используя TimeSpan. вам нужно, чтобы получить Difference в Minutes

DateTime dt1;//get your first date 

TimeSpan duration = DateTime.Now - dt1; 
if(duration.Minutes>20) 
Button1.Enabled=true; 
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. 
     } 
} 
Смежные вопросы