Aracılığıyla paylaş


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

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

Date1 Date2 İ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.

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

Date1 Date2 İ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.

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

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

Date1 Date2 İ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

Gerekli. 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
DateTime

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

Date2
DateTime

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

DayOfWeek
FirstDayOfWeek

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

WeekOfYear
FirstWeekOfYear

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

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ığın 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ı oluşturur. Ç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ğerlerle doğru tarih ve saat değerlerini tutar. Ancak, DateDiff zaman aralıklarının sayısını her zaman bir Long değer 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 ile DayOfYear aynı DateInterval.Dayşekilde değerlendirilir.

  • 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 ö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 ve değerlerinin yalnızca yıl bölümlerinden Date1Date2hesaplanı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'ı karşılaştırılırken, DateDiff en fazla bir gün geçmesine rağmen , DateInterval.Quarterveya DateInterval.Monthiçin DateInterval.Year1 döndürür.

    Birden çok çağa sahip Japonca gibi kültürler için, DateDiff fark iki veya daha fazla çağa yayılmışsa yöntem yıllar 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 TimeSpanDate değişkenden çıkarır ve DateTime.SubtractDate bir değer çıkararak 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" Saniye
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 Tarif
FirstDayOfWeek.System 0 Sistem ayarlarında haftanın ilk günü belirtildi
FirstDayOfWeek.Sunday 1 Pazar (varsayılan)
FirstDayOfWeek.Monday 2 Pazartesi (ISO standardı 8601, bölüm 3.17 ile uyumludur)
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 Tarif
FirstWeekOfYear.System 0 Sistem ayarlarında yılın ilk haftası belirtildi
FirstWeekOfYear.Jan1 1 1 Ocak'ın gerçekleştiği hafta (varsayılan)
FirstWeekOfYear.FirstFourDays 2 Yeni yılda en az dört günü olan hafta (ISO standardı 8601, bölüm 3.17 ile uyumludur)
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
Kaynak:
DateAndTime.vb
Kaynak:
DateAndTime.vb

Date1 Date2 İ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(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

Gerekli. 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

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

Date2
Object

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

DayOfWeek
FirstDayOfWeek

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

WeekOfYear
FirstWeekOfYear

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

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ığın 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ı oluşturur. Ç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ğerlerle doğru tarih ve saat değerlerini tutar. Ancak, DateDiff zaman aralıklarının sayısını her zaman bir Long değer 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 ile DayOfYear aynı DateInterval.Dayşekilde değerlendirilir.

  • 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 ö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 ve değerlerinin yalnızca yıl bölümlerinden Date1Date2hesaplanı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'ı karşılaştırılırken, DateDiff en fazla bir gün geçmesine rağmen , DateInterval.Quarterveya DateInterval.Monthiçin DateInterval.Year1 döndürür.

    Birden çok çağa sahip Japonca gibi kültürler için, DateDiff fark iki veya daha fazla çağa yayılmışsa yöntem yıllar 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 TimeSpanDate değişkenden çıkarır ve DateTime.SubtractDate bir değer çıkararak 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" Saniye
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 Tarif
FirstDayOfWeek.System 0 Sistem ayarlarında haftanın ilk günü belirtildi
FirstDayOfWeek.Sunday 1 Pazar (varsayılan)
FirstDayOfWeek.Monday 2 Pazartesi (ISO standardı 8601, bölüm 3.17 ile uyumludur)
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 Tarif
FirstWeekOfYear.System 0 Sistem ayarlarında yılın ilk haftası belirtildi
FirstWeekOfYear.Jan1 1 1 Ocak'ın gerçekleştiği hafta (varsayılan)
FirstWeekOfYear.FirstFourDays 2 Yeni yılda en az dört günü olan hafta (ISO standardı 8601, bölüm 3.17 ile uyumludur)
FirstWeekOfYear.FirstFullWeek 3 Yeni yılın ilk tam haftası

Ayrıca bkz.

Şunlara uygulanır