DateTimeOffset.AddDays(Double) 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
回傳一個新 DateTimeOffset 物件,為該實例的值加上指定數量的整天與分數日。
public:
DateTimeOffset AddDays(double days);
public DateTimeOffset AddDays(double days);
member this.AddDays : double -> DateTimeOffset
Public Function AddDays (days As Double) As DateTimeOffset
參數
- days
- Double
整天和分段日數。 這個數字可以是負數或正數。
傳回
一個物件,其值為當前 DateTimeOffset 物件所代表的日期與時間與所 days代表的天數之和。
例外狀況
所得值 DateTimeOffset 小於 DateTimeOffset.MinValue。
-或-
範例
以下範例使用該 AddDays 方法列出2008年3月工作週開始的星期一日期。
DateTimeOffset workDay = new DateTimeOffset(2008, 3, 1, 9, 0, 0,
DateTimeOffset.Now.Offset);
int month = workDay.Month;
// Start with the first Monday of the month
if (workDay.DayOfWeek != DayOfWeek.Monday)
{
if (workDay.DayOfWeek == DayOfWeek.Sunday)
workDay = workDay.AddDays(1);
else
workDay = workDay.AddDays(8 - (int)workDay.DayOfWeek);
}
Console.WriteLine("Beginning of Work Week In {0:MMMM} {0:yyyy}:", workDay);
// Add one week to the current date
do
{
Console.WriteLine(" {0:dddd}, {0:MMMM}{0: d}", workDay);
workDay = workDay.AddDays(7);
} while (workDay.Month == month);
// The example produces the following output:
// Beginning of Work Week In March 2008:
// Monday, March 3
// Monday, March 10
// Monday, March 17
// Monday, March 24
// Monday, March 31
let workDay = DateTimeOffset(2008, 3, 1, 9, 0, 0, DateTimeOffset.Now.Offset)
let month = workDay.Month
// Start with the first Monday of the month
let mutable workDay =
match workDay.DayOfWeek with
| DayOfWeek.Monday ->
workDay
| DayOfWeek.Sunday ->
workDay.AddDays 1
| _ ->
workDay.AddDays(8. - float workDay.DayOfWeek)
printfn $"Beginning of Work Week In {workDay:MMMM} {workDay:yyyy}:"
// Add one week to the current date
while workDay.Month = month do
printfn $" {workDay:dddd}, {workDay:MMMM}{workDay: d}"
workDay <- workDay.AddDays 7
// The example produces the following output:
// Beginning of Work Week In March 2008:
// Monday, March 3
// Monday, March 10
// Monday, March 17
// Monday, March 24
// Monday, March 31
Dim workDay As New DateTimeOffset(#3/1/2008 9:00AM#, _
DateTimeOffset.Now.Offset)
Dim month As Integer = workDay.Month
' Start with the first Monday of the month
If workDay.DayOfWeek <> DayOfWeek.Monday Then
If workDay.DayOfWeek = DayOfWeek.Sunday Then
workDay = workDay.AddDays(1)
Else
workDay = workDay.AddDays(8 - CInt(workDay.DayOfWeek))
End If
End If
Console.WriteLine("Beginning of Work Week In {0:MMMM} {0:yyyy}:", workDay)
' Add one week to the current date
Do While workDay.Month = month
Console.WriteLine(" {0:dddd}, {0:MMMM}{0: d}", workDay)
workDay = workDay.AddDays(7)
Loop
' The example produces the following output:
' Beginning of Work Week In March 2008:
' Monday, March 3
' Monday, March 10
' Monday, March 17
' Monday, March 24
' Monday, March 31
備註
參數的 days 分數部分是一天的分數部分。 例如,4.5 相當於 4 天 12 小時 0 分鐘 0 秒 0 毫秒。
在 .NET Framework 中,參數 days 會四捨五入到最接近的毫秒。 在 .NET 7 及之後版本中,參數的精確度會被使用。Doubledays 然而,由於浮點數學本身的不精確性,所得精度會有所不同。
備註
此方法回傳一個新 DateTimeOffset 物件。 它不會透過增加 days 日期和時間來改變當前物件的值。
由於物件 DateTimeOffset 不代表特定時區的日期與時間, AddDays 該方法在執行日期與時間運算時,不會考慮該時區的調整規則。
將少於一天的時間間隔轉換為分數可能會損失精確度。 如果這有問題,你可以使用這個 Add 方法,它讓你能在單一方法呼叫中指定多種時間區間,省去將時間區間轉換成一天中的分數。