DateTimeOffset.AddHours(Double) Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Retourne un nouvel DateTimeOffset objet qui ajoute un nombre spécifié d’heures entières et fractionnaires à la valeur de cette instance.
public:
DateTimeOffset AddHours(double hours);
public DateTimeOffset AddHours(double hours);
member this.AddHours : double -> DateTimeOffset
Public Function AddHours (hours As Double) As DateTimeOffset
Paramètres
- hours
- Double
Nombre d’heures entières et fractionnaires. Le nombre peut être négatif ou positif.
Retours
Objet dont la valeur est la somme de la date et de l’heure représentées par l’objet actuel DateTimeOffset et le nombre d’heures représentées par hours.
Exceptions
La valeur résultante DateTimeOffset est inférieure à DateTimeOffset.MinValue.
- ou -
La valeur résultante DateTimeOffset est supérieure à DateTimeOffset.MaxValue.
Exemples
L’exemple suivant utilise la AddHours méthode pour répertorier les heures de début des quarts de travail pendant une semaine particulière à un bureau qui a deux quarts d’heure par jour.
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
let shiftLength = 8
let startTime = DateTimeOffset(2007, 8, 6, 0, 0, 0, DateTimeOffset.Now.Offset)
let mutable startOfShift = startTime.AddHours shiftLength
printfn $"Shifts for the week of {startOfShift:D}"
while startOfShift.DayOfWeek <> DayOfWeek.Saturday &&
startOfShift.DayOfWeek <> DayOfWeek.Sunday do
// Exclude third shift
if startOfShift.Hour > 6 then
printfn $" {startOfShift:d} at {startOfShift:T}"
startOfShift <- startOfShift.AddHours shiftLength
// 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
Remarques
La partie fractionnaire du hours paramètre est la partie fractionnaire d’une heure. Par exemple, 4,5 équivaut à 4 heures, 30 minutes, 0 secondes, 0 millisecondes.
Dans .NET Framework, le hours paramètre est arrondi à la milliseconde la plus proche. Dans .NET 7 et versions ultérieures, la précision complète Double du hours paramètre est utilisée. Toutefois, en raison de l’imprécision inhérente des mathématiques à virgule flottante, la précision résultante varie.
Note
Cette méthode retourne un nouvel DateTimeOffset objet. Elle ne modifie pas la valeur de l’objet actuel en ajoutant hours à sa date et à son heure.
Étant donné qu’un DateTimeOffset objet ne représente pas la date et l’heure dans un fuseau horaire spécifique, la AddHours méthode ne considère pas les règles d’ajustement d’un fuseau horaire particulier lorsqu’elle effectue des arithmétiques de date et d’heure.
La conversion d’intervalles de temps de moins d’une heure en fraction peut impliquer une perte de précision. (Par exemple, une minute est 0,01666 d’une heure.) Si cela pose problème, vous pouvez utiliser la Add méthode, qui vous permet de spécifier plusieurs types d’intervalles de temps dans un appel de méthode unique et élimine la nécessité de convertir des intervalles de temps en parties fractionnaires d’une heure.