簡體   English   中英

轉換短? 到時間跨度

[英]Converting short? to TimeSpan

我想減去short? Days DateTime? InitialDate short? Days DateTime? InitialDate DateTime? InitialDate獲取DateTime FinalDate

我不確定,因為它們是可為空的對象,這是否會導致比較出現問題。 我試過將days投射到TimeSpan沒有成功。

short? Days = 7;
DateTime? InitialDate = new DateTime(2012, 10, 5);

DateTime FinalDate = InitialDate - Days ;
//FinalDate should be 5/3/2012 12:00 AM

FinalDate 應該是5/3/2012 12:00 AM.

由於您處理的兩個變量都是可為空類型,因此您必須使用它們的.Value屬性來訪問其值。 您還可以使用.HasValue屬性來檢查它是否具有任何值。

現在是減法部分,我不確定您在問題中提到的 TimeSpan 的作用是什么。 但是根據指定的輸出和變量的名稱,我假設它是天數。 如果我的理解是正確的,那么您可以嘗試以下代碼從InitialDate減去Days以獲得FinalDate

為安全起見,您可以在訪問InitialDate之前檢查它們是否具有值。

DateTime? FinalDate = InitialDate.HasValue ? InitialDate.Value.AddDays(-(Days.HasValue? Days.Value : 0)) : null;

這個例子可以幫助你更清楚地理解事情。

您可以使用AddDays方法從InitialDate減去Days值,傳入Days的負值。 由於您沒有顯示您想要發生的事情,因此它的值要么為null我已將FinalDate空:

short? Days = 7;
DateTime? InitialDate = 5/10/2012 12:00 AM;

DateTime FinalDate? = null;
if(Days.HasValue && InitialDate.HasValue)
{
  FinalDate = InitialDate.Value.AddDays(-Days.Value)
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM