DateTimeOffset.AddHours(Double) メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
このインスタンスの値に、指定された整数部と小数部から成る時間数を加算した新しい DateTimeOffset オブジェクトを返します。
public:
DateTimeOffset AddHours(double hours);
public DateTimeOffset AddHours (double hours);
member this.AddHours : double -> DateTimeOffset
Public Function AddHours (hours As Double) As DateTimeOffset
パラメーター
- hours
- Double
整数部と小数部から成る時間数。 正数または負数を指定できます。
戻り値
現在の DateTimeOffset オブジェクトで表された日時に hours
で表された時間数を加算した値を保持するオブジェクト。
例外
結果 DateTimeOffset の値が DateTimeOffset.MinValue 未満です。
\- または -
結果 DateTimeOffset の値が DateTimeOffset.MaxValue より大きい。
例
次の例では、 メソッドを AddHours 使用して、1 日あたり 2 つの 8 時間シフトがあるオフィスで、特定の週の勤務シフトの開始時刻を一覧表示します。
const int SHIFT_LENGTH = 8;
DateTimeOffset startTime = new DateTimeOffset(2007, 8, 6, 0, 0, 0,
DateTimeOffset.Now.Offset);
DateTimeOffset startOfShift = startTime.AddHours(SHIFT_LENGTH);
Console.WriteLine("Shifts for the week of {0:D}", startOfShift);
do
{
// Exclude third shift
if (startOfShift.Hour > 6)
Console.WriteLine(" {0:d} at {0:T}", startOfShift);
startOfShift = startOfShift.AddHours(SHIFT_LENGTH);
} while (startOfShift.DayOfWeek != DayOfWeek.Saturday &
startOfShift.DayOfWeek != DayOfWeek.Sunday);
// The example produces the following output:
//
// Shifts for the week of Monday, August 06, 2007
// 8/6/2007 at 8:00:00 AM
// 8/6/2007 at 4:00:00 PM
// 8/7/2007 at 8:00:00 AM
// 8/7/2007 at 4:00:00 PM
// 8/8/2007 at 8:00:00 AM
// 8/8/2007 at 4:00:00 PM
// 8/9/2007 at 8:00:00 AM
// 8/9/2007 at 4:00:00 PM
// 8/10/2007 at 8:00:00 AM
// 8/10/2007 at 4:00:00 PM
let shiftLength = 8
let startTime = DateTimeOffset(2007, 8, 6, 0, 0, 0, DateTimeOffset.Now.Offset)
let mutable startOfShift = startTime.AddHours shiftLength
printfn $"Shifts for the week of {startOfShift:D}"
while startOfShift.DayOfWeek <> DayOfWeek.Saturday &&
startOfShift.DayOfWeek <> DayOfWeek.Sunday do
// Exclude third shift
if startOfShift.Hour > 6 then
printfn $" {startOfShift:d} at {startOfShift:T}"
startOfShift <- startOfShift.AddHours shiftLength
// The example produces the following output:
//
// Shifts for the week of Monday, August 06, 2007
// 8/6/2007 at 8:00:00 AM
// 8/6/2007 at 4:00:00 PM
// 8/7/2007 at 8:00:00 AM
// 8/7/2007 at 4:00:00 PM
// 8/8/2007 at 8:00:00 AM
// 8/8/2007 at 4:00:00 PM
// 8/9/2007 at 8:00:00 AM
// 8/9/2007 at 4:00:00 PM
// 8/10/2007 at 8:00:00 AM
// 8/10/2007 at 4:00:00 PM
Const SHIFT_LENGTH As Integer = 8
Dim startTime As New DateTimeOffset(#8/6/2007 12:00:00AM#, _
DateTimeOffset.Now.Offset)
Dim startOfShift As DateTimeOffset = startTime.AddHours(SHIFT_LENGTH)
Console.WriteLine("Shifts for the week of {0:D}", startOfShift)
Do
' Exclude third shift
If startOfShift.Hour > 6 Then _
Console.WriteLine(" {0:d} at {0:T}", startOfShift)
startOfShift = startOfShift.AddHours(SHIFT_LENGTH)
Loop While startOfShift.DayOfWeek <> DayOfWeek.Saturday And _
startOfShift.DayOfWeek <> DayOfWeek.Sunday
' The example produces the following output:
'
' Shifts for the week of Monday, August 06, 2007
' 8/6/2007 at 8:00:00 AM
' 8/6/2007 at 4:00:00 PM
' 8/7/2007 at 8:00:00 AM
' 8/7/2007 at 4:00:00 PM
' 8/8/2007 at 8:00:00 AM
' 8/8/2007 at 4:00:00 PM
' 8/9/2007 at 8:00:00 AM
' 8/9/2007 at 4:00:00 PM
' 8/10/2007 at 8:00:00 AM
' 8/10/2007 at 4:00:00 PM
注釈
パラメーターの hours
小数部は、1 時間の小数部です。 たとえば、4.5 は 4 時間、30 分、0 秒、0 ミリ秒に相当します。
.NET 6 以前のバージョンでは、 hours
パラメーターは最も近いミリ秒に丸められます。 .NET 7 以降のバージョンでは、 パラメーターのhours
完全なDouble有効桁数が使用されます。 ただし、浮動小数点演算の本質的な不正確さにより、結果の精度は異なります。
Note
このメソッドは、新 DateTimeOffset しいオブジェクトを返します。 現在のオブジェクトの値は、その日付と時刻に追加 hours
しても変更されません。
オブジェクトは DateTimeOffset 特定のタイム ゾーンの日付と時刻を表さないため、 AddHours メソッドは日付と時刻の算術演算を実行するときに特定のタイム ゾーンの調整規則を考慮しません。
1 時間未満の時間間隔を分数に変換すると、精度が失われる可能性があります。 (たとえば、1 分は 1 時間の 0.01666 です)。これが問題になる場合は、 メソッドを Add 使用できます。これにより、1 つのメソッド呼び出しで複数の種類の時間間隔を指定でき、時間間隔を 1 時間の小数部に変換する必要がなくなります。
適用対象
こちらもご覧ください
.NET