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
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
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
Gereklidir. DateInterval ve Date2
arası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
, Date2
veya 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.
DateDiff
değerini değerindenDate2
çıkararakDate1
farkı üretir. Çağıran programda hiçbir değer değiştirilmez.Dönüş Değerleri.
Date1
veDate2
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ğerLong
olarak döndürür.değerinden
Date2
DateDiff
sonraki bir tarih ve saati temsil ediyorsaDate1
, negatif bir sayı döndürür.Gün Aralıkları. olarak ayarlanırsa
Interval
DateInterval.DayOfYear
, bir zaman aralığı için anlamlı bir birim olmadığından,DayOfYear
ile aynı kabulDateInterval.Day
edilir.Hafta Aralıkları. olarak ayarlanırsa
Interval
DateInterval.WeekOfYear
, dönüş değeri içeren haftanın ilk günü ile içerenDate1
haftanın ilk günü arasındaki haftaDate2
sayısını temsil eder. Aşağıdaki örnekte, bunun uygulamasındanDateInterval.Weekday
nası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 0wD
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'ewY
döndürür.Daha Büyük Aralıklar. olarak ayarlanırsa
Interval
DateInterval.Year
, dönüş değeri yalnızca veDate2
öğelerinin yıl bölümlerindenDate1
hesaplanır. Benzer şekilde, için dönüş değeriDateInterval.Month
yalnızca bağımsız değişkenlerin yıl ve ay bölümlerinden veDateInterval.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.Quarter
veyaDateInterval.Month
içinDateInterval.Year
1 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şkendenDate
bir TimeSpan çıkarır veDate
DateTime.Subtract bir değer çıkararak döndürürTimeSpan.Date
DateTime.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.
- 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
Date1
Date2
İ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 Date2
arası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
, Date2
veya 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.
DateDiff
değerini değerindenDate2
çıkararakDate1
farkı oluşturur. Çağıran programda hiçbir değer değiştirilmez.Dönüş Değerleri.
Date1
veDate2
veri türünde olduğundan, sistem zamanlayıcıdaDate
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 olarakLong
döndürür.değerinden
Date2
DateDiff
sonraki bir tarih ve saati temsil ederseDate1
, negatif bir sayı döndürür.Gün Aralıkları. olarak ayarlanırsa
Interval
DateInterval.DayOfYear
, bir zaman aralığı için anlamlı bir birim olmadığındanDayOfYear
ile aynı şekildeDateInterval.Day
değerlendirilir.Hafta Aralıkları. olarak ayarlanırsa
Interval
DateInterval.WeekOfYear
, dönüş değeri içeren haftanın ilk günü ile içeren haftanınDate1
ilk günü arasındaki haftaDate2
sayısını temsil eder. Aşağıdaki örnek, bunun uygulamasındanDateInterval.Weekday
nası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 0wD
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'ewY
döndürür.Daha Büyük Aralıklar. olarak ayarlanırsa
Interval
DateInterval.Year
, dönüş değeri yalnızca veDate2
öğelerinin yıl bölümlerindenDate1
hesaplanır. Benzer şekilde, içinDateInterval.Month
dönüş değeri yalnızca bağımsız değişkenlerin yıl ve ay bölümlerinden veDateInterval.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.Quarter
veyaDateInterval.Month
içinDateInterval.Year
1 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 birDate
TimeSpan değişkenden çıkarır ve DateTime.Subtract bir değeri çıkararakDate
döndürürTimeSpan.Date
DateTime.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.
- DateAdd
- DatePart
- Day(DateTime)
- Format(Object, String)
- Now
- Weekday(DateTime, FirstDayOfWeek)
- Year(DateTime)
- DateTime
- TimeSpan
- Veri Türü Özeti (Visual Basic)
Şunlara uygulanır
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin