Bagikan melalui


DateTimeOffset.AddHours(Double) Metode

Definisi

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.

Berlaku untuk

Lihat juga