Partage via


DateTimeOffset.AddHours(Double) Méthode

Définition

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.

S’applique à

Voir aussi