Export (0) Print
Expand All
4 out of 5 rated this helpful - Rate this topic

DateTime.AddHours Method

Returns a new DateTime that adds the specified number of hours to the value of this instance.

Namespace:  System
Assembly:  mscorlib (in mscorlib.dll)
public DateTime AddHours(
	double value
)

Parameters

value
Type: System.Double

A number of whole and fractional hours. The value parameter can be negative or positive.

Return Value

Type: System.DateTime
An object whose value is the sum of the date and time represented by this instance and the number of hours represented by value.
ExceptionCondition
ArgumentOutOfRangeException

The resulting DateTime is less than MinValue or greater than MaxValue.

This method does not change the value of this DateTime. Instead, it returns a new DateTime whose value is the result of this operation. The Kind property of the returned DateTime object is the same as that of value.

The fractional part of value is the fractional part of an hour. For example, 4.5 is equivalent to 4 hours, 30 minutes, 0 seconds, 0 milliseconds, and 0 ticks.

The value parameter is rounded to the nearest millisecond.

Converting time intervals of less than an hour to a fraction can involve a loss of precision if the result is a non-terminating repeating decimal. (For example, one minute is 0.016667 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.

The following example uses the AddHours method to add a number of whole and fractional values to a date and time. It also illustrates the loss of precision caused by passing the method a value that includes a fractional component.

using System;

public class Example
{
   public static void Main()
   {
      double[] hours = {.08333, .16667, .25, .33333, .5, .66667, 1, 2, 
                        29, 30, 31, 90, 365};
      DateTime dateValue = new DateTime(2009, 3, 1, 12, 0, 0);

      foreach (double hour in hours)
         Console.WriteLine("{0} + {1} hour(s) = {2}", dateValue, hour, 
                           dateValue.AddHours(hour));

   }
}
// The example displays the following output on a system whose current 
// culture is en-US: 
//    3/1/2009 12:00:00 PM + 0.08333 hour(s) = 3/1/2009 12:04:59 PM 
//    3/1/2009 12:00:00 PM + 0.16667 hour(s) = 3/1/2009 12:10:00 PM 
//    3/1/2009 12:00:00 PM + 0.25 hour(s) = 3/1/2009 12:15:00 PM 
//    3/1/2009 12:00:00 PM + 0.33333 hour(s) = 3/1/2009 12:19:59 PM 
//    3/1/2009 12:00:00 PM + 0.5 hour(s) = 3/1/2009 12:30:00 PM 
//    3/1/2009 12:00:00 PM + 0.66667 hour(s) = 3/1/2009 12:40:00 PM 
//    3/1/2009 12:00:00 PM + 1 hour(s) = 3/1/2009 1:00:00 PM 
//    3/1/2009 12:00:00 PM + 2 hour(s) = 3/1/2009 2:00:00 PM 
//    3/1/2009 12:00:00 PM + 29 hour(s) = 3/2/2009 5:00:00 PM 
//    3/1/2009 12:00:00 PM + 30 hour(s) = 3/2/2009 6:00:00 PM 
//    3/1/2009 12:00:00 PM + 31 hour(s) = 3/2/2009 7:00:00 PM 
//    3/1/2009 12:00:00 PM + 90 hour(s) = 3/5/2009 6:00:00 AM 
//    3/1/2009 12:00:00 PM + 365 hour(s) = 3/16/2009 5:00:00 PM

.NET Framework

Supported in: 4.5.1, 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

Portable Class Library

Supported in: Portable Class Library

.NET for Windows Store apps

Supported in: Windows 8

.NET for Windows Phone apps

Supported in: Windows Phone 8.1, Windows Phone 8, Silverlight 8.1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

Did you find this helpful?
(1500 characters remaining)
Thank you for your feedback
Show:
© 2014 Microsoft. All rights reserved.