2013-11-21 30 views
0

代碼:現在如何從字符串中分配DateTime.Now?

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

時間,例如顯示保存datetime.now可能分鐘前或一小時AO。 datetime.now在我的程序完成後進行操作。

dt =當前的日期時間現在我在構造函數中使用此方法。

我想要做的是計算上次保存的datetime.now(time)和當前的datetime.now(dt)之間傳遞的時間。

如果已經過去的時間是20分鐘或更長時間,請啓用按鈕。

+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 dt = DateTime.Parse(time) 

從一個字符串的DateTime的一個實例,然後你得到的時間現在用

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來做到這一點。 你需要獲得DifferenceMinutes

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