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 值小于 MinValueThe resulting DateTimeOffset value is less than MinValue.

-或--or- 生成的 DateTimeOffset 值大于 MaxValueThe resulting DateTimeOffset value is greater than MaxValue.

示例

下面的示例使用 AddHours 方法来列出办公室中特定周的工作倒班的开始时间,每个工作日有 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 参数的小数部分是一个小时的小数部分。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. (例如,一分钟为0.01666 小时。)如果这有问题,则可以使用 Add 方法,该方法允许您在单个方法调用中指定多个时间间隔,并且无需将时间间隔转换为一小时的小数部分。(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.

适用于

另请参阅