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 objet DateTimeOffset qui ajoute un nombre spécifié d’heures entières et partielles à 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 partielles. Le nombre peut être négatif ou positif.
Retours
Objet dont la valeur est égale à la somme de la date et de l’heure représentées par l’objet DateTimeOffset actuel et du nombre d’heures représenté 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 d’une semaine particulière dans un bureau qui a deux équipes de huit heures 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 seconde, 0 milliseconde.
Dans .NET 6 et les versions antérieures, 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 obtenue varie.
Notes
Cette méthode retourne un nouvel DateTimeOffset objet. Il ne modifie pas la valeur de l’objet actuel en ajoutant hours
à sa date et heure.
Étant donné qu’un DateTimeOffset objet ne représente pas la date et l’heure d’un fuseau horaire spécifique, la AddHours méthode ne tient pas compte des règles d’ajustement d’un fuseau horaire particulier lorsqu’elle effectue une arithmétique de date et d’heure.
La conversion d’intervalles de temps de moins d’une heure en fraction peut entraîner une perte de précision. (Par exemple, une minute est 0,01666 d’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 seul appel de méthode et élimine la nécessité de convertir des intervalles de temps en parties fractionnaires d’une heure.