DateAndTime.DateDiff Metode

Definisi

Mengembalikan nilai yang menentukan jumlah interval waktu di antara dua Date nilai.

Overload

DateDiff(DateInterval, DateTime, DateTime, FirstDayOfWeek, FirstWeekOfYear)

Mengurangi Date1 dari Date2 untuk memberikan nilai panjang yang menentukan jumlah interval waktu di antara kedua Date nilai.

DateDiff(String, Object, Object, FirstDayOfWeek, FirstWeekOfYear)

Mengurangi Date1 dari Date2 untuk memberikan nilai panjang yang menentukan jumlah interval waktu di antara kedua Date nilai.

DateDiff(DateInterval, DateTime, DateTime, FirstDayOfWeek, FirstWeekOfYear)

Sumber:
DateAndTime.vb
Sumber:
DateAndTime.vb
Sumber:
DateAndTime.vb

Mengurangi Date1 dari Date2 untuk memberikan nilai panjang yang menentukan jumlah interval waktu antara dua Date nilai.

public static long DateDiff (Microsoft.VisualBasic.DateInterval Interval, DateTime Date1, DateTime Date2, Microsoft.VisualBasic.FirstDayOfWeek DayOfWeek = Microsoft.VisualBasic.FirstDayOfWeek.Sunday, Microsoft.VisualBasic.FirstWeekOfYear WeekOfYear = Microsoft.VisualBasic.FirstWeekOfYear.Jan1);
static member DateDiff : Microsoft.VisualBasic.DateInterval * DateTime * DateTime * Microsoft.VisualBasic.FirstDayOfWeek * Microsoft.VisualBasic.FirstWeekOfYear -> int64
Public Function DateDiff (Interval As DateInterval, Date1 As DateTime, Date2 As DateTime, Optional DayOfWeek As FirstDayOfWeek = Microsoft.VisualBasic.FirstDayOfWeek.Sunday, Optional WeekOfYear As FirstWeekOfYear = Microsoft.VisualBasic.FirstWeekOfYear.Jan1) As Long

Parameter

Interval
DateInterval

Wajib diisi. Nilai DateInterval enumerasi atau ekspresi string yang mewakili interval waktu yang ingin Anda gunakan sebagai unit perbedaan antara Date1 dan Date2.

Date1
DateTime

Wajib diisi. Nilai tanggal/waktu pertama yang ingin Anda gunakan dalam perhitungan.

Date2
DateTime

Wajib diisi. Nilai tanggal/waktu kedua yang ingin Anda gunakan dalam perhitungan.

DayOfWeek
FirstDayOfWeek

Opsional. Nilai yang dipilih dari FirstDayOfWeek enumerasi yang menentukan hari pertama dalam seminggu. Jika tidak ditentukan, Sunday digunakan.

WeekOfYear
FirstWeekOfYear

Pilihan. Nilai yang dipilih dari FirstWeekOfYear enumerasi yang menentukan minggu pertama dalam setahun. Jika tidak ditentukan, Jan1 digunakan.

Mengembalikan

Nilai panjang yang menentukan jumlah interval waktu di antara dua Date nilai.

Pengecualian

Date1, Date2, atau DayofWeek di luar jangkauan.

Date1 atau Date2 berjenis tidak valid.

Contoh

Contoh ini menggunakan DateDiff fungsi untuk menampilkan jumlah hari antara tanggal tertentu dan hari ini.

Dim date2Entered As String = InputBox("Enter a date")

Try
    Dim date2 As Date = Date.Parse(date2Entered)
    Dim date1 As Date = Now

    ' Determine the number of days between the two dates.
    Dim days As Long = DateDiff(DateInterval.Day, date1, date2)

    ' This statement has a string interval argument, and
    ' is equivalent to the above statement.
    'Dim days As Long = DateDiff("d", date1, date2)

    MessageBox.Show("Days from today: " & days.ToString)
Catch ex As Exception
    MessageBox.Show("Invalid Date: " & ex.Message)
End Try

Keterangan

Anda dapat menggunakan DateDiff fungsi untuk menentukan berapa banyak interval waktu yang ditentukan yang ada di antara dua nilai tanggal/waktu. Misalnya, Anda dapat menggunakan DateDiff untuk menghitung jumlah hari antara dua tanggal, atau jumlah minggu antara hari ini dan akhir tahun.

Aktivitas

  • Perawatan Parameter. DateDiff mengurangi nilai dari Date1 nilai Date2 untuk menghasilkan perbedaan. Tidak ada nilai yang diubah dalam program panggilan.

  • Mengembalikan Nilai. Karena Date1 dan Date2 merupakan jenis Date data, mereka menyimpan nilai tanggal dan waktu yang akurat hingga 100-nanodetik tick pada timer sistem. Namun, DateDiff selalu mengembalikan jumlah interval waktu sebagai Long nilai.

    Jika Date1 menunjukkan tanggal dan waktu yang lebih baru dari Date2, DateDiff mengembalikan angka negatif.

  • Interval Hari. Jika Interval diatur ke DateInterval.DayOfYear, maka diperlakukan sama dengan DateInterval.Day, karena DayOfYear bukan unit yang bermakna untuk interval waktu.

  • Interval Minggu. Jika Interval diatur ke DateInterval.WeekOfYear, nilai yang dikembalikan menunjukkan jumlah minggu antara hari pertama dalam seminggu yang berisi Date1 dan hari pertama dalam seminggu yang berisi Date2. Contoh berikut menunjukkan bagaimana ini menghasilkan hasil yang berbeda dari DateInterval.Weekday.

    ' The following statements set datTim1 to a Thursday
    ' and datTim2 to the following Tuesday.
    Dim datTim1 As Date = #1/4/2001#
    Dim datTim2 As Date = #1/9/2001#
    ' Assume Sunday is specified as first day of the week.
    Dim wD As Long = DateDiff(DateInterval.Weekday, datTim1, datTim2)
    Dim wY As Long = DateDiff(DateInterval.WeekOfYear, datTim1, datTim2)
    

    Dalam contoh sebelumnya, DateDiff mengembalikan 0 ke wD karena selisih antara kedua tanggal kurang dari tujuh hari, tetapi mengembalikan 1 hingga wY karena ada selisih tujuh hari antara hari pertama dari masing-masing minggu kalender.

  • Interval yang lebih besar. Jika Interval diatur ke DateInterval.Year, nilai pengembalian dihitung murni dari bagian Date1 tahun dan Date2. Demikian pula, nilai pengembalian untuk DateInterval.Month dihitung murni dari bagian tahun dan bulan dari argumen, dan untuk DateInterval.Quarter dari kuartal yang berisi dua tanggal.

    Misalnya, ketika membandingkan 31 Desember dengan 1 Januari tahun berikutnya, DateDiff mengembalikan 1 untuk DateInterval.Year, , DateInterval.Quarteratau DateInterval.Month, meskipun paling banyak hanya satu hari yang berlalu.

    Untuk budaya seperti Jepang yang memiliki beberapa era, DateDiff metode ini tidak mengembalikan perbedaan dalam beberapa tahun jika perbedaannya mencakup dua atau lebih era. Sebagai gantinya, Anda dapat menghitung perbedaan nilai yang dikembalikan oleh Year properti , seperti yang ditunjukkan dalam contoh berikut: date2.Year - date1.Year.

  • Interval Lainnya. Karena setiap Date nilai didukung oleh DateTime struktur, metodenya memberi Anda opsi tambahan dalam menemukan interval waktu. Misalnya, Anda dapat menggunakan Subtract metode dalam salah satu bentuk kelebihan bebannya: DateTime.Subtract mengurangi TimeSpan dari Date variabel untuk mengembalikan nilai lain Date , dan DateTime.Subtract mengurangi Date nilai untuk mengembalikan TimeSpan. Anda dapat mengatur waktu proses untuk mengetahui berapa banyak milidetik yang diperlukan, seperti yang ditunjukkan contoh berikut.

    Dim startTime As Date = Now
    ' Run the process that is to be timed.
    Dim runLength As Global.System.TimeSpan = Now.Subtract(startTime)
    Dim millisecs As Double = runLength.TotalMilliseconds
    

Argumen Interval dapat memiliki salah satu pengaturan berikut.

Nilai enumerasi Nilai untai (karakter) Satuan perbedaan waktu
DateInterval.Day "h" Hari
DateInterval.DayOfYear "y" Hari
DateInterval.Hour "h" Jam
DateInterval.Minute "n" Menit
DateInterval.Month "b" Bulan
DateInterval.Quarter "q" Kuartal
DateInterval.Second "s" Detik
DateInterval.Weekday "w" Minggu
DateInterval.WeekOfYear "mm" Minggu kalender
DateInterval.Year "tttt" Tahun

Argumen DayOfWeek dapat memiliki salah satu pengaturan berikut.

Nilai enumerasi Nilai Deskripsi
FirstDayOfWeek.System 0 Hari pertama dalam seminggu yang ditentukan dalam pengaturan sistem
FirstDayOfWeek.Sunday 1 Minggu (default)
FirstDayOfWeek.Monday 2 Senin (sesuai dengan standar ISO 8601, bagian 3.17)
FirstDayOfWeek.Tuesday 3 Selasa
FirstDayOfWeek.Wednesday 4 Rabu
FirstDayOfWeek.Thursday 5 Kamis
FirstDayOfWeek.Friday 6 Jumat
FirstDayOfWeek.Saturday 7 Sabtu

Argumen WeekOfYear dapat memiliki salah satu pengaturan berikut.

Nilai enumerasi Nilai Deskripsi
FirstWeekOfYear.System 0 Minggu pertama tahun yang ditentukan dalam pengaturan sistem
FirstWeekOfYear.Jan1 1 Minggu di mana 1 Januari terjadi (default)
FirstWeekOfYear.FirstFourDays 2 Minggu yang memiliki setidaknya empat hari di tahun baru (sesuai dengan standar ISO 8601, bagian 3.17)
FirstWeekOfYear.FirstFullWeek 3 Minggu penuh pertama di tahun baru

Lihat juga

Berlaku untuk

DateDiff(String, Object, Object, FirstDayOfWeek, FirstWeekOfYear)

Sumber:
DateAndTime.vb
Sumber:
DateAndTime.vb
Sumber:
DateAndTime.vb

Mengurangi Date1 dari Date2 untuk memberikan nilai panjang yang menentukan jumlah interval waktu antara dua Date nilai.

public static long DateDiff (string Interval, object? Date1, object? Date2, Microsoft.VisualBasic.FirstDayOfWeek DayOfWeek = Microsoft.VisualBasic.FirstDayOfWeek.Sunday, Microsoft.VisualBasic.FirstWeekOfYear WeekOfYear = Microsoft.VisualBasic.FirstWeekOfYear.Jan1);
public static long DateDiff (string Interval, object Date1, object Date2, Microsoft.VisualBasic.FirstDayOfWeek DayOfWeek = Microsoft.VisualBasic.FirstDayOfWeek.Sunday, Microsoft.VisualBasic.FirstWeekOfYear WeekOfYear = Microsoft.VisualBasic.FirstWeekOfYear.Jan1);
static member DateDiff : string * obj * obj * Microsoft.VisualBasic.FirstDayOfWeek * Microsoft.VisualBasic.FirstWeekOfYear -> int64
Public Function DateDiff (Interval As String, Date1 As Object, Date2 As Object, Optional DayOfWeek As FirstDayOfWeek = Microsoft.VisualBasic.FirstDayOfWeek.Sunday, Optional WeekOfYear As FirstWeekOfYear = Microsoft.VisualBasic.FirstWeekOfYear.Jan1) As Long

Parameter

Interval
String

Wajib diisi. Nilai DateInterval enumerasi atau ekspresi string yang mewakili interval waktu yang ingin Anda gunakan sebagai unit perbedaan antara Date1 dan Date2.

Date1
Object

Wajib diisi. Nilai tanggal/waktu pertama yang ingin Anda gunakan dalam perhitungan.

Date2
Object

Wajib diisi. Nilai tanggal/waktu kedua yang ingin Anda gunakan dalam perhitungan.

DayOfWeek
FirstDayOfWeek

Pilihan. Nilai yang dipilih dari FirstDayOfWeek enumerasi yang menentukan hari pertama dalam seminggu. Jika tidak ditentukan, Sunday digunakan.

WeekOfYear
FirstWeekOfYear

Pilihan. Nilai yang dipilih dari FirstWeekOfYear enumerasi yang menentukan minggu pertama dalam setahun. Jika tidak ditentukan, Jan1 digunakan.

Mengembalikan

Nilai panjang yang menentukan jumlah interval waktu di antara dua Date nilai.

Pengecualian

Date1, Date2, atau DayofWeek di luar jangkauan.

Date1 atau Date2 berjenis tidak valid.

Contoh

Contoh ini menggunakan DateDiff fungsi untuk menampilkan jumlah hari antara tanggal tertentu dan hari ini.

Dim date2Entered As String = InputBox("Enter a date")

Try
    Dim date2 As Date = Date.Parse(date2Entered)
    Dim date1 As Date = Now

    ' Determine the number of days between the two dates.
    Dim days As Long = DateDiff(DateInterval.Day, date1, date2)

    ' This statement has a string interval argument, and
    ' is equivalent to the above statement.
    'Dim days As Long = DateDiff("d", date1, date2)

    MessageBox.Show("Days from today: " & days.ToString)
Catch ex As Exception
    MessageBox.Show("Invalid Date: " & ex.Message)
End Try

Keterangan

Anda dapat menggunakan DateDiff fungsi untuk menentukan berapa banyak interval waktu yang ditentukan di antara dua nilai tanggal/waktu. Misalnya, Anda dapat menggunakan DateDiff untuk menghitung jumlah hari antara dua tanggal, atau jumlah minggu antara hari ini dan akhir tahun.

Aktivitas

  • Perlakuan Parameter. DateDiff mengurangi nilai dari Date1 nilai Date2 untuk menghasilkan perbedaan. Tidak ada nilai yang diubah dalam program panggilan.

  • Mengembalikan Nilai. Karena Date1 dan Date2 merupakan jenis Date data, mereka menyimpan nilai tanggal dan waktu yang akurat hingga 100-nanodetik tick pada timer sistem. Namun, DateDiff selalu mengembalikan jumlah interval waktu sebagai Long nilai.

    Jika Date1 menunjukkan tanggal dan waktu yang lebih baru dari Date2, DateDiff mengembalikan angka negatif.

  • Interval Hari. Jika Interval diatur ke DateInterval.DayOfYear, itu diperlakukan sama dengan DateInterval.Day, karena DayOfYear bukan unit yang bermakna untuk interval waktu.

  • Interval Minggu. Jika Interval diatur ke DateInterval.WeekOfYear, nilai yang dikembalikan menunjukkan jumlah minggu antara hari pertama dalam seminggu yang berisi Date1 dan hari pertama dalam seminggu yang berisi Date2. Contoh berikut menunjukkan bagaimana ini menghasilkan hasil yang berbeda dari DateInterval.Weekday.

    ' The following statements set datTim1 to a Thursday
    ' and datTim2 to the following Tuesday.
    Dim datTim1 As Date = #1/4/2001#
    Dim datTim2 As Date = #1/9/2001#
    ' Assume Sunday is specified as first day of the week.
    Dim wD As Long = DateDiff(DateInterval.Weekday, datTim1, datTim2)
    Dim wY As Long = DateDiff(DateInterval.WeekOfYear, datTim1, datTim2)
    

    Dalam contoh sebelumnya, DateDiff mengembalikan 0 ke wD karena perbedaan antara kedua tanggal kurang dari tujuh hari, tetapi mengembalikan 1 ke wY karena ada perbedaan tujuh hari antara hari pertama dari masing-masing minggu kalender.

  • Interval yang lebih besar. Jika Interval diatur ke DateInterval.Year, nilai pengembalian dihitung murni dari bagian Date1 tahun dan Date2. Demikian pula, nilai pengembalian untuk DateInterval.Month dihitung murni dari bagian tahun dan bulan argumen, dan untuk DateInterval.Quarter dari kuartal yang berisi dua tanggal.

    Misalnya, ketika membandingkan 31 Desember dengan 1 Januari tahun berikutnya, DateDiff mengembalikan 1 untuk DateInterval.Year, , DateInterval.Quarteratau DateInterval.Month, meskipun paling banyak hanya satu hari yang berlalu.

    Untuk budaya seperti Jepang yang memiliki beberapa era, DateDiff metode ini tidak mengembalikan perbedaan dalam bertahun-tahun jika perbedaannya mencakup dua atau lebih era. Sebagai gantinya, Anda dapat menghitung perbedaan nilai yang Year dikembalikan oleh properti , seperti yang ditunjukkan dalam contoh berikut: date2.Year - date1.Year.

  • Interval Lainnya. Karena setiap Date nilai didukung oleh DateTime struktur, metodenya memberi Anda opsi tambahan dalam menemukan interval waktu. Misalnya, Anda dapat menggunakan Subtract metode dalam salah satu bentuk kelebihan bebannya: DateTime.Subtract mengurangi TimeSpan dari Date variabel untuk mengembalikan nilai lain Date , dan DateTime.Subtract mengurangi Date nilai untuk mengembalikan TimeSpan. Anda dapat mengatur waktu proses untuk mengetahui berapa banyak milidetik yang diperlukan, seperti yang ditunjukkan contoh berikut.

    Dim startTime As Date = Now
    ' Run the process that is to be timed.
    Dim runLength As Global.System.TimeSpan = Now.Subtract(startTime)
    Dim millisecs As Double = runLength.TotalMilliseconds
    

Argumen Interval dapat memiliki salah satu pengaturan berikut.

Nilai enumerasi Nilai untai (karakter) Satuan perbedaan waktu
DateInterval.Day "h" Hari
DateInterval.DayOfYear "y" Hari
DateInterval.Hour "h" Jam
DateInterval.Minute "n" Menit
DateInterval.Month "b" Bulan
DateInterval.Quarter "q" Kuartal
DateInterval.Second "s" Detik
DateInterval.Weekday "w" Minggu
DateInterval.WeekOfYear "mm" Minggu kalender
DateInterval.Year "tttt" Tahun

Argumen DayOfWeek dapat memiliki salah satu pengaturan berikut.

Nilai enumerasi Nilai Deskripsi
FirstDayOfWeek.System 0 Hari pertama dalam seminggu yang ditentukan dalam pengaturan sistem
FirstDayOfWeek.Sunday 1 Minggu (default)
FirstDayOfWeek.Monday 2 Senin (sesuai dengan standar ISO 8601, bagian 3.17)
FirstDayOfWeek.Tuesday 3 Selasa
FirstDayOfWeek.Wednesday 4 Rabu
FirstDayOfWeek.Thursday 5 Kamis
FirstDayOfWeek.Friday 6 Jumat
FirstDayOfWeek.Saturday 7 Sabtu

Argumen WeekOfYear dapat memiliki salah satu pengaturan berikut.

Nilai enumerasi Nilai Deskripsi
FirstWeekOfYear.System 0 Minggu pertama tahun yang ditentukan dalam pengaturan sistem
FirstWeekOfYear.Jan1 1 Minggu di mana 1 Januari terjadi (default)
FirstWeekOfYear.FirstFourDays 2 Minggu yang memiliki setidaknya empat hari di tahun baru (sesuai dengan standar ISO 8601, bagian 3.17)
FirstWeekOfYear.FirstFullWeek 3 Minggu penuh pertama di tahun baru

Lihat juga

Berlaku untuk