DateTimeOffset.AddHours(Double) Metode
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Mengembalikan objek baru DateTimeOffset yang menambahkan jumlah jam utuh dan pecahan tertentu ke nilai instans ini.
public:
DateTimeOffset AddHours(double hours);
public DateTimeOffset AddHours (double hours);
member this.AddHours : double -> DateTimeOffset
Public Function AddHours (hours As Double) As DateTimeOffset
Parameter
- hours
- Double
Sejumlah jam utuh dan pecahan. Angkanya bisa negatif atau positif.
Mengembalikan
Objek yang nilainya adalah jumlah tanggal dan waktu yang diwakili oleh objek saat ini DateTimeOffset dan jumlah jam yang diwakili oleh hours
.
Pengecualian
Nilai yang DateTimeOffset dihasilkan kurang dari DateTimeOffset.MinValue.
-atau-
Nilai yang DateTimeOffset dihasilkan lebih besar dari DateTimeOffset.MaxValue.
Contoh
Contoh berikut menggunakan AddHours metode untuk mencantumkan waktu mulai shift kerja selama minggu tertentu di kantor yang memiliki dua shift delapan jam per hari.
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
Keterangan
Bagian pecahan dari hours
parameter adalah bagian pecahan dari satu jam. Misalnya, 4,5 setara dengan 4 jam, 30 menit, 0 detik, 0 milidetik.
Dalam .NET 6 dan versi yang lebih lama, parameter dibulatkan hours
ke milidetik terdekat. Di .NET 7 dan versi yang lebih baru, presisi hours
penuh Double parameter digunakan. Namun, karena impresi matematika floating point yang melekat, presisi yang dihasilkan akan bervariasi.
Catatan
Metode ini mengembalikan objek baru DateTimeOffset . Ini tidak mengubah nilai objek saat ini dengan menambahkan hours
ke tanggal dan waktunya.
DateTimeOffset Karena objek tidak mewakili tanggal dan waktu dalam zona waktu tertentu, AddHours metode tidak mempertimbangkan aturan penyesuaian zona waktu tertentu ketika melakukan aritmatika tanggal dan waktu.
Mengonversi interval waktu kurang dari satu jam ke pecahan dapat melibatkan hilangnya presisi. (Misalnya, satu menit adalah 0,01666 dari satu jam.) Jika ini bermasalah, Anda dapat menggunakan Add metode , yang memungkinkan Anda menentukan lebih dari satu jenis interval waktu dalam satu panggilan metode dan menghilangkan kebutuhan untuk mengonversi interval waktu menjadi bagian pecahan satu jam.