DateTimeOffset.AddHours(Double) メソッド

定義

このインスタンスの値に、指定された整数部と小数部から成る時間数を加算した新しい DateTimeOffset オブジェクトを返します。Returns a new DateTimeOffset object that adds a specified number of whole and fractional hours to the value of this instance.

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

整数部と小数部から成る時間数。A number of whole and fractional hours. 正数または負数を指定できます。The number can be negative or positive.

戻り値

現在の DateTimeOffset オブジェクトで表された日時に hours で表された時間数を加算した値を保持するオブジェクト。An object whose value is the sum of the date and time represented by the current DateTimeOffset object and the number of hours represented by hours.

例外

結果として得られる DateTimeOffset 値は MinValue より小さい値です。The resulting DateTimeOffset value is less than MinValue.

- または --or- 結果として得られる DateTimeOffset 値が MaxValue を超えています。The resulting DateTimeOffset value is greater than MaxValue.

次の例では、AddHours メソッドを使用して、1日あたり 2 8 時間のシフトを持つオフィスの特定の週の作業シフトの開始時刻を一覧表示します。The following example uses the AddHours method to list the start times of work shifts for a particular week at an office that has two eight-hour shifts per day.

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時間の小数部です。The fractional part of the hours parameter is the fractional part of an hour. たとえば、4.5 は、4時間、30分、0秒、0ミリ秒に相当します。For example, 4.5 is equivalent to 4 hours, 30 minutes, 0 seconds, 0 milliseconds. hours パラメーターは、ミリ秒単位で丸められます。The hours parameter is rounded to the nearest millisecond.

注意

このメソッドは、新しい DateTimeOffset オブジェクトを返します。This method returns a new DateTimeOffset object. 日付と時刻に hours を追加することによって、現在のオブジェクトの値を変更することはありません。It does not modify the value of the current object by adding hours to its date and time.

DateTimeOffset オブジェクトは特定のタイムゾーンの日付と時刻を表していないため、AddHours メソッドは、日付と時刻の演算を実行するときに特定のタイムゾーンの調整規則を考慮しません。Because a DateTimeOffset object does not represent the date and time in a specific time zone, the AddHours method does not consider a particular time zone's adjustment rules when it performs date and time arithmetic.

時間間隔を1時間未満に変換すると、精度が低下する可能性があります。Converting time intervals of less than an hour to a fraction can involve a loss of precision. (たとえば、1分は0.01666 時間です)。この問題が発生した場合は、Add メソッドを使用できます。これにより、1回のメソッド呼び出しで複数の種類の時間間隔を指定できるようになり、時間間隔を1時間の小数部分に変換する必要がなくなります。(For example, one minute is 0.01666 of an hour.) If this is problematic, you can use the Add method, which enables you to specify more than one kind of time interval in a single method call and eliminates the need to convert time intervals to fractional parts of an hour.

適用対象

こちらもご覧ください