DateAndTime.DateDiff Yöntem

Tanım

İki Date değer arasındaki zaman aralıklarının sayısını belirten bir değer döndürür.

Aşırı Yüklemeler

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

Date1Date2 İki Date değer arasındaki zaman aralıklarının sayısını belirten uzun bir değer vermek için değerini çıkarır.

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

Date1Date2 İki Date değer arasındaki zaman aralıklarının sayısını belirten uzun bir değer vermek için değerini çıkarır.

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

Kaynak:
DateAndTime.vb
Kaynak:
DateAndTime.vb
Kaynak:
DateAndTime.vb

Date1Date2 İki Date değer arasındaki zaman aralıklarının sayısını belirten uzun bir değer vermek için öğesini çıkarın.

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

Parametreler

Interval
DateInterval

Gereklidir. DateInterval ve Date2arasındaki Date1 fark birimi olarak kullanmak istediğiniz zaman aralığını temsil eden bir numaralandırma değeri veya dize ifadesi.

Date1
DateTime

Gereklidir. Hesaplamada kullanmak istediğiniz ilk tarih/saat değeri.

Date2
DateTime

Gereklidir. Hesaplamada kullanmak istediğiniz ikinci tarih/saat değeri.

DayOfWeek
FirstDayOfWeek

İsteğe bağlı. Numaralandırmadan FirstDayOfWeek seçilen ve haftanın ilk gününü belirten bir değer. Belirtilmezse Sunday kullanılır.

WeekOfYear
FirstWeekOfYear

İsteğe bağlı. Numaralandırmadan FirstWeekOfYear seçilen ve yılın ilk haftasını belirten bir değer. Belirtilmezse Jan1 kullanılır.

Döndürülenler

İki Date değer arasındaki zaman aralıklarının sayısını belirten uzun bir değer.

Özel durumlar

Date1, Date2veya DayofWeek aralık dışında.

Date1 veya Date2 geçersiz türde.

Örnekler

Bu örnekte, belirli bir tarih ile bugün arasındaki gün sayısını görüntülemek için işlevi kullanılır DateDiff .

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

Açıklamalar

İki tarih/saat değeri arasında belirtilen zaman aralıklarının sayısını belirlemek için işlevini kullanabilirsiniz DateDiff . Örneğin, iki tarih arasındaki gün sayısını veya bugün ile yıl sonu arasındaki hafta sayısını hesaplamak için kullanabilirsiniz DateDiff .

Davranış

  • Parametrelerin Işlenmesi. DateDiffdeğerini değerinden Date2 çıkararak Date1 farkı üretir. Çağıran programda hiçbir değer değiştirilmez.

  • Dönüş Değerleri. Date1 ve Date2 veri türünde olduğundanDate, sistem zamanlayıcıda 100 nanosaniyelik değere doğru tarih ve saat değerlerini tutar. Ancak, DateDiff zaman aralıklarının sayısını her zaman değer Long olarak döndürür.

    değerinden Date2DateDiff sonraki bir tarih ve saati temsil ediyorsaDate1, negatif bir sayı döndürür.

  • Gün Aralıkları. olarak ayarlanırsa IntervalDateInterval.DayOfYear, bir zaman aralığı için anlamlı bir birim olmadığından, DayOfYear ile aynı kabul DateInterval.Dayedilir.

  • Hafta Aralıkları. olarak ayarlanırsa IntervalDateInterval.WeekOfYear, dönüş değeri içeren haftanın ilk günü ile içeren Date1 haftanın ilk günü arasındaki hafta Date2sayısını temsil eder. Aşağıdaki örnekte, bunun uygulamasından DateInterval.Weekdaynasıl farklı sonuçlar ürettiği gösterilmektedir.

    ' 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)
    

    Önceki örnekte, DateDiff iki tarih arasındaki fark yedi günden az olduğundan 0 wD değerini döndürür, ancak ilgili takvim haftalarının ilk günleri arasında yedi günlük bir fark olduğundan 1'e wY döndürür.

  • Daha Büyük Aralıklar. olarak ayarlanırsa IntervalDateInterval.Year, dönüş değeri yalnızca ve Date2öğelerinin yıl bölümlerinden Date1 hesaplanır. Benzer şekilde, için dönüş değeri DateInterval.Month yalnızca bağımsız değişkenlerin yıl ve ay bölümlerinden ve DateInterval.Quarter iki tarihi içeren üç aylık dönemlerden hesaplanır.

    Örneğin, 31 Aralık ile sonraki yılın 1 Ocak'ını karşılaştırırken, DateDiff en fazla bir gün geçmesine rağmen , DateInterval.Quarterveya DateInterval.Monthiçin DateInterval.Year1 döndürür.

    Birden çok dönemi olan Japonca gibi kültürler için, DateDiff fark iki veya daha fazla döneme yayılacaksa yöntem yıl içinde bir fark döndürmez. Bunun yerine, aşağıdaki örnekte gösterildiği gibi özelliği tarafından Year döndürülen değerlerdeki farkı hesaplayabilirsiniz: date2.Year - date1.Year.

  • Diğer Aralıklar. Her Date değer bir DateTime yapı tarafından desteklendiğinden, yöntemleri size zaman aralıklarını bulma konusunda ek seçenekler sağlar. Örneğin, yöntemini aşırı yüklenmiş formlarından birinde kullanabilirsiniz: başka bir değer döndürmek için değişkenden Date bir TimeSpan çıkarır ve DateDateTime.Subtract bir değer çıkararak döndürürTimeSpan.DateDateTime.SubtractSubtract Aşağıdaki örnekte gösterildiği gibi, işlemin kaç milisaniye sürdüğünü bulmak için bir işlemi zamanlayabilirsiniz.

    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
    

Bağımsız Interval değişken aşağıdaki ayarlardan birine sahip olabilir.

Numaralandırma değeri Dize değeri Zaman farkı birimi
DateInterval.Day "d" Gün
DateInterval.DayOfYear "y" Gün
DateInterval.Hour "h" Saat
DateInterval.Minute "n" Dakika
DateInterval.Month "m" Ay
DateInterval.Quarter "q" Çeyrek
DateInterval.Second "s" Second
DateInterval.Weekday "w" Hafta
DateInterval.WeekOfYear "ww" Takvim haftası
DateInterval.Year "yyyy" Yıl

Bağımsız DayOfWeek değişken aşağıdaki ayarlardan birine sahip olabilir.

Numaralandırma değeri Değer Açıklama
FirstDayOfWeek.System 0 Sistem ayarlarında belirtilen haftanın ilk günü
FirstDayOfWeek.Sunday 1 Pazar (varsayılan)
FirstDayOfWeek.Monday 2 Pazartesi (ISO standart 8601, bölüm 3.17 ile uyumlu)
FirstDayOfWeek.Tuesday 3 Salı
FirstDayOfWeek.Wednesday 4 Çarşamba
FirstDayOfWeek.Thursday 5 Perşembe
FirstDayOfWeek.Friday 6 Cuma
FirstDayOfWeek.Saturday 7 Cumartesi

Bağımsız WeekOfYear değişken aşağıdaki ayarlardan birine sahip olabilir.

Numaralandırma değeri Değer Açıklama
FirstWeekOfYear.System 0 Sistem ayarlarında belirtilen yılın ilk haftası
FirstWeekOfYear.Jan1 1 1 Ocak oluştuğu hafta (varsayılan)
FirstWeekOfYear.FirstFourDays 2 Yeni yılda en az dört günü olan hafta (ISO standart 8601, 3.17 bölüm ile uyumlu)
FirstWeekOfYear.FirstFullWeek 3 Yeni yılın ilk tam haftası

Ayrıca bkz.

Şunlara uygulanır

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

Kaynak:
DateAndTime.vb
Kaynak:
DateAndTime.vb
Kaynak:
DateAndTime.vb

Date1Date2 İki Date değer arasındaki zaman aralıklarının sayısını belirten uzun bir değer vermek için değerini çıkarır.

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

Parametreler

Interval
String

Gereklidir. DateInterval ile Date2arasındaki Date1 fark birimi olarak kullanmak istediğiniz zaman aralığını temsil eden bir numaralandırma değeri veya dize ifadesi.

Date1
Object

Gereklidir. Hesaplamada kullanmak istediğiniz ilk tarih/saat değeri.

Date2
Object

Gereklidir. Hesaplamada kullanmak istediğiniz ikinci tarih/saat değeri.

DayOfWeek
FirstDayOfWeek

İsteğe bağlı. Numaralandırmadan FirstDayOfWeek seçilen ve haftanın ilk gününü belirten bir değer. Belirtilmezse Sunday kullanılır.

WeekOfYear
FirstWeekOfYear

İsteğe bağlı. Numaralandırmadan FirstWeekOfYear seçilen ve yılın ilk haftasını belirten bir değer. Belirtilmezse Jan1 kullanılır.

Döndürülenler

İki Date değer arasındaki zaman aralıklarının sayısını belirten uzun bir değer.

Özel durumlar

Date1, Date2veya DayofWeek aralık dışında.

Date1 veya Date2 geçersiz türde.

Örnekler

Bu örnekte, belirli bir tarih ile bugün arasındaki gün sayısını görüntülemek için işlevi kullanılır DateDiff .

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

Açıklamalar

İki tarih/saat değeri arasında belirtilen zaman aralıklarının sayısını belirlemek için işlevini kullanabilirsiniz DateDiff . Örneğin, iki tarih arasındaki gün sayısını veya bugün ile yıl sonu arasındaki hafta sayısını hesaplamak için kullanabilirsiniz DateDiff .

Davranış

  • Parametrelerin tedavisi. DateDiffdeğerini değerinden Date2 çıkararak Date1 farkı oluşturur. Çağıran programda hiçbir değer değiştirilmez.

  • Dönüş Değerleri. Date1 ve Date2 veri türünde olduğundan, sistem zamanlayıcıda Date 100 nanosaniyelik değer değerlerine doğru tarih ve saat değerlerini tutarlar. Ancak, DateDiff zaman aralıklarının sayısını her zaman değer olarak Long döndürür.

    değerinden Date2DateDiff sonraki bir tarih ve saati temsil ederseDate1, negatif bir sayı döndürür.

  • Gün Aralıkları. olarak ayarlanırsa IntervalDateInterval.DayOfYear, bir zaman aralığı için anlamlı bir birim olmadığından DayOfYear ile aynı şekilde DateInterval.Daydeğerlendirilir.

  • Hafta Aralıkları. olarak ayarlanırsa IntervalDateInterval.WeekOfYear, dönüş değeri içeren haftanın ilk günü ile içeren haftanın Date1 ilk günü arasındaki hafta Date2sayısını temsil eder. Aşağıdaki örnek, bunun uygulamasından DateInterval.Weekdaynasıl farklı sonuçlar ürettiğini gösterir.

    ' 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)
    

    Yukarıdaki örnekte, DateDiff iki tarih arasındaki fark yedi günden az olduğundan 0 wD değerini döndürür, ancak ilgili takvim haftalarının ilk günleri arasında yedi günlük bir fark olduğundan 1'e wY döndürür.

  • Daha Büyük Aralıklar. olarak ayarlanırsa IntervalDateInterval.Year, dönüş değeri yalnızca ve Date2öğelerinin yıl bölümlerinden Date1 hesaplanır. Benzer şekilde, için DateInterval.Month dönüş değeri yalnızca bağımsız değişkenlerin yıl ve ay bölümlerinden ve DateInterval.Quarter iki tarihi içeren üç aylık dönemlerden hesaplanır.

    Örneğin, 31 Aralık ile sonraki yılın 1 Ocak'ını karşılaştırırken, DateDiff en fazla bir gün geçmesine rağmen , DateInterval.Quarterveya DateInterval.Monthiçin DateInterval.Year1 döndürür.

    Birden çok dönemi olan Japonca gibi kültürler için, DateDiff fark iki veya daha fazla döneme yayılmışsa yöntem yıl içinde bir fark döndürmez. Bunun yerine, aşağıdaki örnekte gösterildiği gibi özelliği tarafından Year döndürülen değerlerdeki farkı hesaplayabilirsiniz: date2.Year - date1.Year.

  • Diğer Aralıklar. Her Date değer bir DateTime yapı tarafından desteklendiğinden, yöntemleri size zaman aralıklarını bulma konusunda ek seçenekler sağlar. Örneğin, yöntemini aşırı yüklenmiş formlarından birinde kullanabilirsiniz: başka bir değer döndürmek için bir DateTimeSpan değişkenden çıkarır ve DateTime.Subtract bir değeri çıkararak Date döndürürTimeSpan.DateDateTime.SubtractSubtract Aşağıdaki örnekte gösterildiği gibi, kaç milisaniye sürdüğünü bulmak için bir işlemi zamanlayabilirsiniz.

    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
    

Bağımsız Interval değişken aşağıdaki ayarlardan birine sahip olabilir.

Numaralandırma değeri Dize değeri Zaman farkı birimi
DateInterval.Day "d" Gün
DateInterval.DayOfYear "y" Gün
DateInterval.Hour "h" Saat
DateInterval.Minute "n" Dakika
DateInterval.Month "m" Ay
DateInterval.Quarter "q" Çeyrek
DateInterval.Second "s" Second
DateInterval.Weekday "w" Hafta
DateInterval.WeekOfYear "ww" Takvim haftası
DateInterval.Year "yyyy" Yıl

Bağımsız DayOfWeek değişken aşağıdaki ayarlardan birine sahip olabilir.

Numaralandırma değeri Değer Açıklama
FirstDayOfWeek.System 0 Sistem ayarlarında belirtilen haftanın ilk günü
FirstDayOfWeek.Sunday 1 Pazar (varsayılan)
FirstDayOfWeek.Monday 2 Pazartesi (ISO standart 8601, bölüm 3.17 ile uyumlu)
FirstDayOfWeek.Tuesday 3 Salı
FirstDayOfWeek.Wednesday 4 Çarşamba
FirstDayOfWeek.Thursday 5 Perşembe
FirstDayOfWeek.Friday 6 Cuma
FirstDayOfWeek.Saturday 7 Cumartesi

Bağımsız WeekOfYear değişken aşağıdaki ayarlardan birine sahip olabilir.

Numaralandırma değeri Değer Açıklama
FirstWeekOfYear.System 0 Sistem ayarlarında belirtilen yılın ilk haftası
FirstWeekOfYear.Jan1 1 1 Ocak oluştuğu hafta (varsayılan)
FirstWeekOfYear.FirstFourDays 2 Yeni yılda en az dört günü olan hafta (ISO standart 8601, 3.17 bölüm ile uyumlu)
FirstWeekOfYear.FirstFullWeek 3 Yeni yılın ilk tam haftası

Ayrıca bkz.

Şunlara uygulanır