DateTime.AddHours(Double) Metode

Definisi

Mengembalikan baru DateTime yang menambahkan jumlah jam yang ditentukan ke nilai instans ini.

public:
 DateTime AddHours(double value);
public DateTime AddHours (double value);
member this.AddHours : double -> DateTime
Public Function AddHours (value As Double) As DateTime

Parameter

value
Double

Sejumlah jam utuh dan pecahan. Parameternya value bisa negatif atau positif.

Mengembalikan

Objek yang nilainya adalah jumlah tanggal dan waktu yang diwakili oleh instans ini dan jumlah jam yang diwakili oleh value.

Pengecualian

DateTime Hasilnya kurang dari DateTime.MinValue atau lebih besar dari DateTime.MaxValue.

Contoh

Contoh berikut menggunakan AddHours metode untuk menambahkan sejumlah nilai utuh dan pecahan ke tanggal dan waktu. Ini juga menggambarkan hilangnya presisi yang disebabkan oleh melewati metode nilai yang mencakup komponen pecahan.

using System;

public class Example
{
   public static void Main()
   {
      double[] hours = {.08333, .16667, .25, .33333, .5, .66667, 1, 2,
                        29, 30, 31, 90, 365};
      DateTime dateValue = new DateTime(2009, 3, 1, 12, 0, 0);

      foreach (double hour in hours)
         Console.WriteLine("{0} + {1} hour(s) = {2}", dateValue, hour,
                           dateValue.AddHours(hour));
   }
}
// The example displays the following output on a system whose current
// culture is en-US:
//    3/1/2009 12:00:00 PM + 0.08333 hour(s) = 3/1/2009 12:04:59 PM
//    3/1/2009 12:00:00 PM + 0.16667 hour(s) = 3/1/2009 12:10:00 PM
//    3/1/2009 12:00:00 PM + 0.25 hour(s) = 3/1/2009 12:15:00 PM
//    3/1/2009 12:00:00 PM + 0.33333 hour(s) = 3/1/2009 12:19:59 PM
//    3/1/2009 12:00:00 PM + 0.5 hour(s) = 3/1/2009 12:30:00 PM
//    3/1/2009 12:00:00 PM + 0.66667 hour(s) = 3/1/2009 12:40:00 PM
//    3/1/2009 12:00:00 PM + 1 hour(s) = 3/1/2009 1:00:00 PM
//    3/1/2009 12:00:00 PM + 2 hour(s) = 3/1/2009 2:00:00 PM
//    3/1/2009 12:00:00 PM + 29 hour(s) = 3/2/2009 5:00:00 PM
//    3/1/2009 12:00:00 PM + 30 hour(s) = 3/2/2009 6:00:00 PM
//    3/1/2009 12:00:00 PM + 31 hour(s) = 3/2/2009 7:00:00 PM
//    3/1/2009 12:00:00 PM + 90 hour(s) = 3/5/2009 6:00:00 AM
//    3/1/2009 12:00:00 PM + 365 hour(s) = 3/16/2009 5:00:00 PM
open System

let hours = 
    [ 0.08333; 0.16667; 0.25
      0.33333; 0.5; 0.66667; 1 
      2; 29; 30; 31; 90; 365 ]

let dateValue = DateTime(2009, 3, 1, 12, 0, 0)

for hour in hours do
    printfn $"{dateValue} + {hour} hour(s) = {dateValue.AddHours hour}"
                    

// The example displays the following output on a system whose current
// culture is en-US:
//    3/1/2009 12:00:00 PM + 0.08333 hour(s) = 3/1/2009 12:04:59 PM
//    3/1/2009 12:00:00 PM + 0.16667 hour(s) = 3/1/2009 12:10:00 PM
//    3/1/2009 12:00:00 PM + 0.25 hour(s) = 3/1/2009 12:15:00 PM
//    3/1/2009 12:00:00 PM + 0.33333 hour(s) = 3/1/2009 12:19:59 PM
//    3/1/2009 12:00:00 PM + 0.5 hour(s) = 3/1/2009 12:30:00 PM
//    3/1/2009 12:00:00 PM + 0.66667 hour(s) = 3/1/2009 12:40:00 PM
//    3/1/2009 12:00:00 PM + 1 hour(s) = 3/1/2009 1:00:00 PM
//    3/1/2009 12:00:00 PM + 2 hour(s) = 3/1/2009 2:00:00 PM
//    3/1/2009 12:00:00 PM + 29 hour(s) = 3/2/2009 5:00:00 PM
//    3/1/2009 12:00:00 PM + 30 hour(s) = 3/2/2009 6:00:00 PM
//    3/1/2009 12:00:00 PM + 31 hour(s) = 3/2/2009 7:00:00 PM
//    3/1/2009 12:00:00 PM + 90 hour(s) = 3/5/2009 6:00:00 AM
//    3/1/2009 12:00:00 PM + 365 hour(s) = 3/16/2009 5:00:00 PM
Module Example
   Public Sub Main()
      Dim hours() As Double = {.08333, .16667, .25, .33333, .5, .66667, 1, 2, _
                             29, 30, 31, 90, 365}
      Dim dateValue As Date = #3/1/2009 12:00#
      
      For Each hour As Double In hours
         Console.WriteLine("{0} + {1} hour(s) = {2}", dateValue, hour, _
                           dateValue.AddHours(hour))
      Next                             
   End Sub
End Module
' The example displays the following output on a system whose current
' culture is en-US:
' 3/1/2009 12:00:00 PM + 0.08333 hour(s) = 3/1/2009 12:04:59 PM
' 3/1/2009 12:00:00 PM + 0.16667 hour(s) = 3/1/2009 12:10:00 PM
' 3/1/2009 12:00:00 PM + 0.25 hour(s) = 3/1/2009 12:15:00 PM
' 3/1/2009 12:00:00 PM + 0.33333 hour(s) = 3/1/2009 12:19:59 PM
' 3/1/2009 12:00:00 PM + 0.5 hour(s) = 3/1/2009 12:30:00 PM
' 3/1/2009 12:00:00 PM + 0.66667 hour(s) = 3/1/2009 12:40:00 PM
' 3/1/2009 12:00:00 PM + 1 hour(s) = 3/1/2009 1:00:00 PM
' 3/1/2009 12:00:00 PM + 2 hour(s) = 3/1/2009 2:00:00 PM
' 3/1/2009 12:00:00 PM + 29 hour(s) = 3/2/2009 5:00:00 PM
' 3/1/2009 12:00:00 PM + 30 hour(s) = 3/2/2009 6:00:00 PM
' 3/1/2009 12:00:00 PM + 31 hour(s) = 3/2/2009 7:00:00 PM
' 3/1/2009 12:00:00 PM + 90 hour(s) = 3/5/2009 6:00:00 AM
' 3/1/2009 12:00:00 PM + 365 hour(s) = 3/16/2009 5:00:00 PM

Keterangan

Metode ini tidak mengubah nilai ini DateTime. Sebaliknya, ia mengembalikan yang baru DateTime yang nilainya adalah hasil dari operasi ini. Properti Kind objek yang dikembalikan DateTime sama valuedengan .

Bagian pecahan dari value adalah bagian pecahan dari satu jam. Misalnya, 4,5 setara dengan 4 jam, 30 menit, 0 detik, 0 milidetik, dan 0 kutu.

Dalam .NET 6 dan versi yang lebih lama, parameter dibulatkan value ke milidetik terdekat. Dalam .NET 7 dan versi yang lebih baru, presisi value penuh Double parameter digunakan. Namun, karena impresi matematika floating point yang melekat, presisi yang dihasilkan akan bervariasi.

Mengonversi interval waktu kurang dari satu jam ke pecahan dapat melibatkan hilangnya presisi jika hasilnya adalah desimal berulang yang tidak mengakhiri. (Misalnya, satu menit adalah 0,016667 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 ke bagian pecahan satu jam.

Berlaku untuk

Lihat juga