DateTimeOffset.AddHours(Double) Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Retourneert een nieuw DateTimeOffset object waarmee een opgegeven aantal gehele en fractionele uren wordt toegevoegd aan de waarde van dit exemplaar.
public:
DateTimeOffset AddHours(double hours);
public DateTimeOffset AddHours(double hours);
member this.AddHours : double -> DateTimeOffset
Public Function AddHours (hours As Double) As DateTimeOffset
Parameters
- hours
- Double
Een aantal gehele en breukuren. Het getal kan negatief of positief zijn.
Retouren
Een object waarvan de waarde de som is van de datum en tijd die wordt vertegenwoordigd door het huidige DateTimeOffset object en het aantal uren dat wordt vertegenwoordigd door hours.
Uitzonderingen
De resulterende DateTimeOffset waarde is kleiner dan DateTimeOffset.MinValue.
– of –
De resulterende DateTimeOffset waarde is groter dan DateTimeOffset.MaxValue.
Voorbeelden
In het volgende voorbeeld wordt de methode gebruikt om de AddHours begintijden van werkdiensten voor een bepaalde week weer te geven op een kantoor met twee diensten van acht uur per dag.
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
Opmerkingen
Het breukgedeelte van de hours parameter is het breukgedeelte van een uur. 4,5 is bijvoorbeeld gelijk aan 4 uur, 30 minuten, 0 seconden, 0 milliseconden.
In .NET Framework wordt de parameter hours afgerond op de dichtstbijzijnde milliseconden. In .NET 7 en hoger wordt de volledige Double precisie van de parameter hours gebruikt. Vanwege de inherente onnauwkeurigheid van drijvendekommaberekeningen varieert de resulterende precisie.
Note
Met deze methode wordt een nieuw DateTimeOffset object geretourneerd. De waarde van het huidige object wordt niet gewijzigd door deze toe te voegen aan hours de datum en tijd.
Omdat een DateTimeOffset object de datum en tijd in een specifieke tijdzone niet vertegenwoordigt, wordt bij het uitvoeren van datum- en tijdberekeningen geen rekening gehouden met de AddHours aanpassingsregels van een bepaalde tijdzone.
Het converteren van tijdsintervallen van minder dan een uur naar een breuk kan leiden tot verlies van precisie. (Eén minuut is bijvoorbeeld 0,01666 van een uur.) Als dit problematisch is, kunt u de Add methode gebruiken, waarmee u meer dan één soort tijdsinterval kunt opgeven in één methodeaanroep en de noodzaak om tijdsintervallen te converteren naar fractionele delen van een uur.