DateTimeOffset.AddDays(Double) Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Возвращает новый объект DateTimeOffset, прибавляющий заданное количество полных и неполных дней к значению данного экземпляра.
public:
DateTimeOffset AddDays(double days);
public DateTimeOffset AddDays (double days);
member this.AddDays : double -> DateTimeOffset
Public Function AddDays (days As Double) As DateTimeOffset
Параметры
- days
- Double
Число полных и неполных дней. Это число может быть положительным или отрицательным.
Возвращаемое значение
Объект, значение которого равно сумме даты и времени, представленных текущим объектом DateTimeOffset, и количества дней, представленного параметром days
.
Исключения
Полученное DateTimeOffset значение меньше DateTimeOffset.MinValue.
-или-
Полученное DateTimeOffset значение больше DateTimeOffset.MaxValue.
Примеры
В следующем примере метод используется AddDays для перечисления дат, которые приходятся на понедельник, начало рабочей недели, в марте 2008 года.
DateTimeOffset workDay = new DateTimeOffset(2008, 3, 1, 9, 0, 0,
DateTimeOffset.Now.Offset);
int month = workDay.Month;
// Start with the first Monday of the month
if (workDay.DayOfWeek != DayOfWeek.Monday)
{
if (workDay.DayOfWeek == DayOfWeek.Sunday)
workDay = workDay.AddDays(1);
else
workDay = workDay.AddDays(8 - (int)workDay.DayOfWeek);
}
Console.WriteLine("Beginning of Work Week In {0:MMMM} {0:yyyy}:", workDay);
// Add one week to the current date
do
{
Console.WriteLine(" {0:dddd}, {0:MMMM}{0: d}", workDay);
workDay = workDay.AddDays(7);
} while (workDay.Month == month);
// The example produces the following output:
// Beginning of Work Week In March 2008:
// Monday, March 3
// Monday, March 10
// Monday, March 17
// Monday, March 24
// Monday, March 31
let workDay = DateTimeOffset(2008, 3, 1, 9, 0, 0, DateTimeOffset.Now.Offset)
let month = workDay.Month
// Start with the first Monday of the month
let mutable workDay =
match workDay.DayOfWeek with
| DayOfWeek.Monday ->
workDay
| DayOfWeek.Sunday ->
workDay.AddDays 1
| _ ->
workDay.AddDays(8. - float workDay.DayOfWeek)
printfn $"Beginning of Work Week In {workDay:MMMM} {workDay:yyyy}:"
// Add one week to the current date
while workDay.Month = month do
printfn $" {workDay:dddd}, {workDay:MMMM}{workDay: d}"
workDay <- workDay.AddDays 7
// The example produces the following output:
// Beginning of Work Week In March 2008:
// Monday, March 3
// Monday, March 10
// Monday, March 17
// Monday, March 24
// Monday, March 31
Dim workDay As New DateTimeOffset(#3/1/2008 9:00AM#, _
DateTimeOffset.Now.Offset)
Dim month As Integer = workDay.Month
' Start with the first Monday of the month
If workDay.DayOfWeek <> DayOfWeek.Monday Then
If workDay.DayOfWeek = DayOfWeek.Sunday Then
workDay = workDay.AddDays(1)
Else
workDay = workDay.AddDays(8 - CInt(workDay.DayOfWeek))
End If
End If
Console.WriteLine("Beginning of Work Week In {0:MMMM} {0:yyyy}:", workDay)
' Add one week to the current date
Do While workDay.Month = month
Console.WriteLine(" {0:dddd}, {0:MMMM}{0: d}", workDay)
workDay = workDay.AddDays(7)
Loop
' The example produces the following output:
' Beginning of Work Week In March 2008:
' Monday, March 3
' Monday, March 10
' Monday, March 17
' Monday, March 24
' Monday, March 31
Комментарии
Дробная часть days
параметра — это дробная часть дня. Например, 4,5 эквивалентно 4 дням, 12 часам, 0 минутам, 0 секундам, 0 миллисекундам.
В .NET 6 и более ранних версиях days
параметр округляется до ближайшей миллисекунды. В .NET 7 и более поздних версиях используется полная Double точность days
параметра. Однако из-за присущей точности математических вычислений с плавающей запятой результирующая точность будет отличаться.
Примечание
Этот метод возвращает новый DateTimeOffset объект . Он не изменяет значение текущего объекта путем добавления days
к его дате и времени.
DateTimeOffset Поскольку объект не представляет дату и время в определенном часовом поясе, AddDays метод не учитывает правила корректировки определенного часового пояса при выполнении арифметики даты и времени.
Преобразование интервалов времени менее одного дня в дробь может привести к потере точности. Если это проблематично, можно использовать Add метод , который позволяет указать несколько типов интервалов времени в одном вызове метода и устраняет необходимость преобразования интервалов времени в дробные части дня.