2011-01-28 19 views
1

是否可以更改由DateTime返回的值?或者至少把它分配給一個變量,然後改變該變量?C#更正日期時間值的正確方法?

internal int hour; 
    internal int minute; 
    DateTime time = DateTime.Now; 

public int incrementHour(int step) 
     { 
      if (step > 0 && hour < 24) 
      { 
       //step = step % hour; 
       hour = (hour + step) % 24; 
       time.AddHours(hour); 
       return hour; 
      }//end of if 

      else 
      { 
       MessageBox.Show("Please enter a positive number."); 

       return 0; 
      }//end of else 
     }//end of incrementHour 

Addhours並沒有真正做到它的外觀。的DateTime

回答

12

實例是不可變的 - AddHours()返回反映變化的價值DateTime一個新的實例 - 所以你要改變的值重新分配給您的時間變量:

time = time.AddHours(hour); 

MSDN爲AddHours方法(適用於DateTime所有其他方法一樣):

此方法不會改變這個日期的價值 。而是返回 新的DateTime,其值爲此操作的結果 。返回的DateTime 對象的種類 屬性與值的屬性相同。

3

所有你需要做的是

time = time.AddHours(hour) 

,這將是它