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 未満です。
\- または -
結果 DateTimeOffset の値が DateTimeOffset.MaxValue より大きくなります。
例
次の例では、 メソッドを 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
小数部は、1 日の小数部です。 たとえば、4.5 は 4 日、12 時間、0 分、0 秒、0 ミリ秒に相当します。
.NET 6 以前のバージョンでは、 days
パラメーターは最も近いミリ秒に丸められます。 .NET 7 以降のバージョンでは、 パラメーターのdays
完全なDouble有効桁数が使用されます。 ただし、浮動小数点演算の本質的な不正確さが原因で、結果の精度は異なります。
Note
このメソッドは、新 DateTimeOffset しい オブジェクトを返します。 現在のオブジェクトの日付と時刻に を追加 days
しても、現在のオブジェクトの値は変更されません。
オブジェクトは DateTimeOffset 特定のタイム ゾーンの日付と時刻を表していないため、 AddDays メソッドは日付と時刻の算術演算を実行するときに特定のタイム ゾーンの調整規則を考慮しません。
1 日未満の時間間隔を分数に変換すると、精度が失われる可能性があります。 これが問題になる場合は、 メソッドを Add 使用できます。これにより、1 回のメソッド呼び出しで複数の種類の時間間隔を指定でき、時間間隔を 1 日の小数部に変換する必要がなくなります。
適用対象
.NET