DateAndTime.DateDiff Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
İ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) |
|
| DateDiff(String, Object, Object, FirstDayOfWeek, FirstWeekOfYear) |
|
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ğerindenDate2çıkararakDate1farkı oluşturur. Çağıran programda hiçbir değer değiştirilmez.Dönüş Değerleri.
Date1veDate2veri türünde olduğundanDate, sistem zamanlayıcıda 100 nanosaniyelik değerlerle doğru tarih ve saat değerlerini tutar. Ancak,DateDiffzaman aralıklarının sayısını her zaman birLongdeğer olarak döndürür.değerinden
Date2DateDiffsonraki 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 ileDayOfYearaynı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çerenDate1haftanın ilk günü arasındaki haftaDate2sayısını temsil eder. Aşağıdaki örnek, bunun uygulamasındanDateInterval.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,
DateDiffiki tarih arasındaki fark yedi günden az olduğundan 0wDdeğ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'ewYdö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ümlerindenDate1Date2hesaplanır. Benzer şekilde, içinDateInterval.Monthdönüş değeri yalnızca bağımsız değişkenlerin yıl ve ay bölümlerinden veDateInterval.Quarteriki 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,
DateDiffen fazla bir gün geçmesine rağmen ,DateInterval.QuarterveyaDateInterval.MonthiçinDateInterval.Year1 döndürür.Birden çok çağa sahip Japonca gibi kültürler için,
DateDifffark 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
Datedeğ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 TimeSpanDatedeğişkenden çıkarır ve DateTime.SubtractDatebir değer çıkararak döndürürTimeSpan.DateDateTime.SubtractSubtractAş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.
- DateAdd
- DatePart
- Day(DateTime)
- Format(Object, String)
- Now
- Weekday(DateTime, FirstDayOfWeek)
- Year(DateTime)
- DateTime
- TimeSpan
- Veri Türü Özeti (Visual Basic)
Ş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ğerindenDate2çıkararakDate1farkı oluşturur. Çağıran programda hiçbir değer değiştirilmez.Dönüş Değerleri.
Date1veDate2veri türünde olduğundanDate, sistem zamanlayıcıda 100 nanosaniyelik değerlerle doğru tarih ve saat değerlerini tutar. Ancak,DateDiffzaman aralıklarının sayısını her zaman birLongdeğer olarak döndürür.değerinden
Date2DateDiffsonraki 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 ileDayOfYearaynı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çerenDate1haftanın ilk günü arasındaki haftaDate2sayısını temsil eder. Aşağıdaki örnek, bunun uygulamasındanDateInterval.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,
DateDiffiki tarih arasındaki fark yedi günden az olduğundan 0wDdeğ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'ewYdö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ümlerindenDate1Date2hesaplanır. Benzer şekilde, içinDateInterval.Monthdönüş değeri yalnızca bağımsız değişkenlerin yıl ve ay bölümlerinden veDateInterval.Quarteriki 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,
DateDiffen fazla bir gün geçmesine rağmen ,DateInterval.QuarterveyaDateInterval.MonthiçinDateInterval.Year1 döndürür.Birden çok çağa sahip Japonca gibi kültürler için,
DateDifffark 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
Datedeğ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 TimeSpanDatedeğişkenden çıkarır ve DateTime.SubtractDatebir değer çıkararak döndürürTimeSpan.DateDateTime.SubtractSubtractAş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.
- DateAdd
- DatePart
- Day(DateTime)
- Format(Object, String)
- Now
- Weekday(DateTime, FirstDayOfWeek)
- Year(DateTime)
- DateTime
- TimeSpan
- Veri Türü Özeti (Visual Basic)