DateTimeOffset.AddHours(Double) メソッド

定義

このインスタンスの値に、指定された整数部と小数部から成る時間数を加算した新しい 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

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

例外

結果として得られる DateTimeOffset 値は MinValue より小さい値です。

次の例では、メソッドを使用して、1 AddHours 日あたり 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
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ミリ秒に相当します。 hoursパラメーターは、ミリ秒単位で丸められます。

注意

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

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

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

適用対象

こちらもご覧ください