2012-08-07 28 views
0

我有DateTime類型的變量dtTimeTimeSpan類型的tmSpan。我做這些:我設置到DateTime.TimeOfDay中的TimeSpan會根據DateTime更改嗎?

dtTime=new DateTime(1,1,1)+tmSpan; 

在此之後,如果我改變dtTime天這個時間變化將被應用到tmSpan?如果不是有任何解決方案來應用這樣的東西?

+2

['TimeSpan'](http://msdn.microsoft.com/zh-cn/library/system.timespan.aspx)是不可變的 - 如果您查看可用的方法,您會發現任何方法涉及突變該值會返回一個* new *'TimeSpan'結構。 – 2012-08-07 06:28:26

回答

2

不,它不會。 tmSpan是持有一定價值的自變量。 dtTime中的更改不會更改tmSpan

對於你的問題的第二部分,我不知道你是如何計算的時間跨度,但我相信你必須重新計算,以什麼變化,是這樣的:

tmSpan = dtTime - DateTime.Now; 
0

改變dtTime後你可以做

tmSpan = dtTime - new DateTime(1,1,1); 
0

當你做這個操作

dtTime=new DateTime(1,1,1)+tmSpan; 

TimeSpan值的一部分是dtTime實例的一部分,對其進行的任何更改都不會反映在TimeSpan上。您仍然可以通過使用dtTime.TimeOfDay訪問相關部分,這是我認爲您正在尋找的內容。

相關問題