Partager via


DateTimeOffset.AddHours(Double) Méthode

Définition

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.

S’applique à

Voir aussi