Прочитать на английском

Поделиться через


DateTime.AddHours(Double) Метод

Определение

Возвращает новый объект DateTime, добавляющий заданное число часов к значению данного экземпляра.

public DateTime AddHours(double value);

Параметры

value
Double

Число полных и неполных часов. Параметр value может быть положительным или отрицательным.

Возвращаемое значение

Объект, значение которого равно сумме даты и времени, представленных текущим экземпляром, и количества часов, представленного параметром value.

Исключения

Полученный результат DateTime меньше DateTime.MinValue или больше DateTime.MaxValue.

Примеры

В следующем примере метод используется AddHours для добавления целого и дробного значений к дате и времени. В нем также показана потеря точности, вызванная передачей методу значения, включающего дробный компонент.

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

Комментарии

Этот метод не изменяет значение данного DateTimeобъекта . Вместо этого он возвращает новый DateTime объект , значение которого является результатом этой операции. Свойство Kind возвращаемого DateTime объекта совпадает со valueсвойством объекта .

Дробная часть является value дробной частью часа. Например, 4,5 эквивалентно 4 часам, 30 минутам, 0 секундам, 0 миллисекундам и 0 тактовам.

В .NET 6 и более ранних версиях value параметр округляется до ближайшей миллисекунды. В .NET 7 и более поздних версиях используется полная Double точность value параметра. Однако из-за присущей точности математических вычислений с плавающей запятой результирующая точность будет отличаться.

Преобразование интервалов времени менее часа в дробь может привести к потере точности, если результатом является неустранимая повторяющаяся десятичная дробь. (Например, одна минута составляет 0,016667 часа.) Если это проблематично, можно использовать Add метод , который позволяет указать несколько типов интервалов времени в одном вызове метода и устраняет необходимость преобразования интервалов времени в дробные части часа.

Применяется к

Продукт Версии
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

См. также раздел