英語で読む

次の方法で共有


DateTimeOffset.AddHours(Double) メソッド

定義

このインスタンスの値に、指定された整数部と小数部から成る時間数を加算した新しい DateTimeOffset オブジェクトを返します。

C#
public DateTimeOffset AddHours(double hours);

パラメーター

hours
Double

整数部と小数部から成る時間数。 正数または負数を指定できます。

戻り値

現在の DateTimeOffset オブジェクトで表された日時に hours で表された時間数を加算した値を保持するオブジェクト。

例外

結果 DateTimeOffset の値が DateTimeOffset.MinValue 未満です

\- または -

結果 DateTimeOffset の値が DateTimeOffset.MaxValue より大きい。

次の例では、 メソッドを AddHours 使用して、1 日あたり 2 つの 8 時間シフトがあるオフィスで、特定の週の勤務シフトの開始時刻を一覧表示します。

C#
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

注釈

パラメーターの hours 小数部は、1 時間の小数部です。 たとえば、4.5 は 4 時間、30 分、0 秒、0 ミリ秒に相当します。

.NET 6 以前のバージョンでは、 hours パラメーターは最も近いミリ秒に丸められます。 .NET 7 以降のバージョンでは、 パラメーターのhours完全なDouble有効桁数が使用されます。 ただし、浮動小数点演算の本質的な不正確さにより、結果の精度は異なります。

注意

このメソッドは、新 DateTimeOffset しいオブジェクトを返します。 現在のオブジェクトの値は、その日付と時刻に追加 hours しても変更されません。

オブジェクトは DateTimeOffset 特定のタイム ゾーンの日付と時刻を表さないため、 AddHours メソッドは日付と時刻の算術演算を実行するときに特定のタイム ゾーンの調整規則を考慮しません。

1 時間未満の時間間隔を分数に変換すると、精度が失われる可能性があります。 (たとえば、1 分は 1 時間の 0.01666 です)。これが問題になる場合は、 メソッドを Add 使用できます。これにより、1 つのメソッド呼び出しで複数の種類の時間間隔を指定でき、時間間隔を 1 時間の小数部に変換する必要がなくなります。

適用対象

製品 バージョン
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

こちらもご覧ください