Share via


DateTimeOffset.AddHours Method

Microsoft Silverlight will reach end of support after October 2021. Learn more.

Adds a specified number of whole and fractional hours to the current DateTimeOffset object.

Namespace:  System
Assembly:  mscorlib (in mscorlib.dll)

Syntax

'Declaration
Public Function AddHours ( _
    hours As Double _
) As DateTimeOffset
public DateTimeOffset AddHours(
    double hours
)

Parameters

  • hours
    Type: System.Double
    A number of whole and fractional hours. The number can be negative or positive.

Return Value

Type: System.DateTimeOffset
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.

Exceptions

Exception Condition
ArgumentOutOfRangeException

The resulting DateTimeOffset value is less than MinValue.

-or-

The resulting DateTimeOffset value is greater than MaxValue.

Remarks

The fractional part of the hours parameter is the fractional part of an hour. For example, 4.5 is equivalent to 4 hours, 30 minutes, 0 seconds, 0 milliseconds. The hours parameter is rounded to the nearest millisecond.

NoteNote:

This method returns a new DateTimeOffset object. It does not modify the value of the current object by adding hours to its date and time.

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.

Converting time intervals of less than an hour to a fraction can involve a loss of precision. (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.

Examples

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 SHIFT_LENGTH As Integer = 8

Dim startTime As New DateTimeOffset(#8/6/2007#, _
                     DateTimeOffset.Now.Offset)
Dim startOfShift As DateTimeOffset = startTime.AddHours(SHIFT_LENGTH)

outputBlock.Text += String.Format("Shifts for the week of {0:D}", startOfShift) & vbCrLf
Do
   ' Exclude third shift
   If startOfShift.Hour > 6 Then _
      outputBlock.Text += String.Format("   {0:d} at {0:T}", startOfShift) & vbCrLf

   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                 
const int SHIFT_LENGTH = 8;

DateTimeOffset startTime = new DateTimeOffset(2007, 8, 6, 0, 0, 0,
                     DateTimeOffset.Now.Offset);
DateTimeOffset startOfShift = startTime.AddHours(SHIFT_LENGTH);

outputBlock.Text += String.Format("Shifts for the week of {0:D}", startOfShift) + "\n";
do
{
   // Exclude third shift
   if (startOfShift.Hour > 6)
      outputBlock.Text += String.Format("   {0:d} at {0:T}", startOfShift) + "\n";

   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                 

Version Information

Silverlight

Supported in: 5, 4, 3

Silverlight for Windows Phone

Supported in: Windows Phone OS 7.1, Windows Phone OS 7.0

XNA Framework

Supported in: Xbox 360, Windows Phone OS 7.0

Platforms

For a list of the operating systems and browsers that are supported by Silverlight, see Supported Operating Systems and Browsers.