DateAndTime.DateDiff Metodo

Definizione

Restituisce un valore che specifica il numero di intervalli di tempo tra due valori Date.Returns a value specifying the number of time intervals between two Date values.

Overload

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

Restituisce un valore long che specifica il numero di intervalli di tempo tra due valori Date.Returns a long value specifying the number of time intervals between two Date values.

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

Restituisce un valore long che specifica il numero di intervalli di tempo tra due valori Date.Returns a long value specifying the number of time intervals between two Date values.

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

Restituisce un valore long che specifica il numero di intervalli di tempo tra due valori Date.Returns a long value specifying the number of time intervals between two Date values.

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

Parametri

Interval
DateInterval

Obbligatorio.Required. Valore dell'enumerazione DateInterval o espressione String che rappresenta l'intervallo di tempo da usare come unità di differenza tra Date2 e Date1.A DateInterval enumeration value or a string expression representing the time interval you want to use as the unit of difference between Date1 and Date2.

Date1
DateTime

Obbligatorio.Required. Il primo valore di data/ora che si desidera utilizzare nel calcolo.The first date/time value you want to use in the calculation.

Date2
DateTime

Obbligatorio.Required. Il secondo valore di data/ora che si desidera utilizzare nel calcolo.The second date/time value you want to use in the calculation.

DayOfWeek
FirstDayOfWeek

Facoltativo.Optional. Valore scelto dall'enumerazione FirstDayOfWeek che specifica il primo giorno della settimana.A value chosen from the FirstDayOfWeek enumeration that specifies the first day of the week. Se omesso, viene utilizzato Sunday.If not specified, Sunday is used.

WeekOfYear
FirstWeekOfYear

Opzionale.Optional. Valore scelto dall'enumerazione FirstWeekOfYear che specifica il primo giorno dell'anno.A value chosen from the FirstWeekOfYear enumeration that specifies the first week of the year. Se omesso, viene utilizzato Jan1.If not specified, Jan1 is used.

Restituisce

Valore long che specifica il numero di intervalli di tempo tra due valori Date.A long value specifying the number of time intervals between two Date values.

Eccezioni

Date1, Date2 o DayofWeek non è compreso nell'intervallo consentito.Date1, Date2, or DayofWeek is out of range.

Date1 o Date2 è di un tipo non valido.Date1 or Date2 is of an invalid type.

Esempi

In questo esempio viene DateDiff utilizzata la funzione per visualizzare il numero di giorni tra una data specificata e l'ora.This example uses the DateDiff function to display the number of days between a given date and today.

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

Commenti

È possibile utilizzare la DateDiff funzione per determinare il numero di intervalli di tempo specificati tra due valori di data/ora.You can use the DateDiff function to determine how many specified time intervals exist between two date/time values. Ad esempio, è possibile usare DateDiff per calcolare il numero di giorni tra due date o il numero di settimane tra oggi e la fine dell'anno.For example, you might use DateDiff to calculate the number of days between two dates, or the number of weeks between today and the end of the year.

ComportamentoBehavior

  • Trattamento dei parametri.Treatment of Parameters. DateDiffsottrae il valore di Date1 dal valore di Date2 per produrre la differenza.DateDiff subtracts the value of Date1 from the value of Date2 to produce the difference. Nessuno dei due valori viene modificato nel programma chiamante.Neither value is changed in the calling program.

  • Valori restituiti.Return Values. Poiché Date1 Date e Date2 sono del tipo di dati, i valori di data e ora vengono mantenuti accurati per i segni di 100-nanosecondi sul timer di sistema.Because Date1 and Date2 are of the Date data type, they hold date and time values accurate to 100-nanosecond ticks on the system timer. Tuttavia, DateDiff restituisce sempre il numero di intervalli di tempo Long come valore.However, DateDiff always returns the number of time intervals as a Long value.

    Se Date1 rappresenta una data e un' Date2ora successive a DateDiff , restituisce un numero negativo.If Date1 represents a later date and time than Date2, DateDiff returns a negative number.

  • Intervalli di giorni.Day Intervals. Se Interval è impostato su DateInterval.DayOfYear, DateInterval.Dayviene considerato uguale a, perché DayOfYear non è un'unità significativa per un intervallo di tempo.If Interval is set to DateInterval.DayOfYear, it is treated the same as DateInterval.Day, because DayOfYear is not a meaningful unit for a time interval.

  • Intervalli di settimana.Week Intervals. Se Interval è impostato su DateInterval.WeekOfYear, il valore restituito rappresenta il numero di settimane tra il primo giorno della settimana contenente Date1 e il primo giorno della settimana contenente Date2.If Interval is set to DateInterval.WeekOfYear, the return value represents the number of weeks between the first day of the week containing Date1 and the first day of the week containing Date2. Nell'esempio seguente viene illustrato come produrre risultati diversi da DateInterval.Weekday.The following example shows how this produces different results from 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)
    

    Nell'esempio precedente, DateDiff restituisce 0 a wD perché la differenza tra le due date è inferiore a sette giorni, ma restituisce 1 a wY perché esiste una differenza di sette giorni tra i primi giorni del rispettivo calendario settimane.In the preceding example, DateDiff returns 0 to wD because the difference between the two dates is less than seven days, but it returns 1 to wY because there is a seven-day difference between the first days of the respective calendar weeks.

  • Intervalli maggiori.Larger Intervals. Se Interval è impostato su DateInterval.Year, il valore restituito viene calcolato esclusivamente dalle parti dell'anno di Date1 e Date2di.If Interval is set to DateInterval.Year, the return value is calculated purely from the year parts of Date1 and Date2. Analogamente, il valore restituito DateInterval.Month per viene calcolato esclusivamente dalle parti dell'anno e del mese degli argomenti e da DateInterval.Quarter per i trimestri contenenti le due date.Similarly, the return value for DateInterval.Month is calculated purely from the year and month parts of the arguments, and for DateInterval.Quarter from the quarters containing the two dates.

    Se, ad esempio, si esegue il confronto tra il 31 dicembre e il DateDiff 1 ° gennaio DateInterval.Yeardell'anno seguente DateInterval.Month, restituisce 1 per, DateInterval.Quartero, anche se è trascorso al massimo un giorno.For example, when comparing December 31 to January 1 of the following year, DateDiff returns 1 for DateInterval.Year, DateInterval.Quarter, or DateInterval.Month, even though at most only one day has elapsed.

    Per le impostazioni cultura come il giapponese che hanno più ere DateDiff , il metodo non restituisce una differenza in anni se la differenza si estende su due o più ere.For cultures such as Japanese that have multiple eras, the DateDiff method does not return a difference in years if the difference spans two or more eras. In alternativa, è possibile calcolare la differenza nei valori restituiti dalla Year proprietà, come illustrato nell'esempio seguente:. date2.Year - date1.YearInstead, you can calculate the difference in values returned by the Year property, as shown in the following example: date2.Year - date1.Year.

  • Altri intervalli.Other Intervals. Poiché ogni Date valore è supportato da una DateTime struttura, i relativi metodi offrono opzioni aggiuntive per la ricerca degli intervalli temporali.Since every Date value is supported by a DateTime structure, its methods give you additional options in finding time intervals. Ad esempio, è possibile usare il Subtract metodo in uno dei form in overload: DateTime.Subtract sottrae un oggetto TimeSpan da una Date variabile per restituire un altro Date valore e DateTime.Subtract sottrae un Date valore per restituire un TimeSpanoggetto.For example, you can use the Subtract method in either of its overloaded forms: DateTime.Subtract subtracts a TimeSpan from a Date variable to return another Date value, and DateTime.Subtract subtracts a Date value to return a TimeSpan. È possibile eseguire un processo per determinare il numero di millisecondi necessari, come illustrato nell'esempio riportato di seguito.You can time a process to find out how many milliseconds it takes, as the following example shows.

    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
    

L' Interval argomento può avere una delle impostazioni seguenti.The Interval argument can have one of the following settings.

Valore di enumerazioneEnumeration value Valore stringaString value Differenza tra unità di tempoUnit of time difference
DateInterval.Day "d""d" DayDay
DateInterval.DayOfYear "y""y" DayDay
DateInterval.Hour "h""h" HourHour
DateInterval.Minute "n""n" MinuteMinute
DateInterval.Month "m""m" MeseMonth
DateInterval.Quarter "q""q" TrimestreQuarter
DateInterval.Second "s""s" SecondSecond
DateInterval.Weekday "w""w" SettimanaWeek
DateInterval.WeekOfYear "ww""ww" Settimana di calendarioCalendar week
DateInterval.Year "yyyy""yyyy" AnnoYear

L' DayOfWeek argomento può avere una delle impostazioni seguenti.The DayOfWeek argument can have one of the following settings.

Valore di enumerazioneEnumeration value ValueValue DescriptionDescription
FirstDayOfWeek.System 00 Primo giorno della settimana specificato nelle impostazioni di sistemaFirst day of week specified in system settings
FirstDayOfWeek.Sunday 11 Domenica (impostazione predefinita)Sunday (default)
FirstDayOfWeek.Monday 22 Lunedì (conforme allo standard ISO 8601, sezione 3,17)Monday (complies with ISO standard 8601, section 3.17)
FirstDayOfWeek.Tuesday 33 MartedìTuesday
FirstDayOfWeek.Wednesday 44 MercoledìWednesday
FirstDayOfWeek.Thursday 55 GiovedìThursday
FirstDayOfWeek.Friday 66 VenerdìFriday
FirstDayOfWeek.Saturday 77 SaturdaySaturday

L' WeekOfYear argomento può avere una delle impostazioni seguenti.The WeekOfYear argument can have one of the following settings.

Valore di enumerazioneEnumeration value ValueValue DescriptionDescription
FirstWeekOfYear.System 00 Prima settimana dell'anno specificata nelle impostazioni di sistemaFirst week of year specified in system settings
FirstWeekOfYear.Jan1 11 Settimana in cui si verifica il 1 gennaio (impostazione predefinita)Week in which January 1 occurs (default)
FirstWeekOfYear.FirstFourDays 22 Settimana con almeno quattro giorni nel nuovo anno (conforme allo standard ISO 8601, sezione 3,17)Week that has at least four days in the new year (complies with ISO standard 8601, section 3.17)
FirstWeekOfYear.FirstFullWeek 33 Prima settimana intera del nuovo annoFirst full week in the new year

Vedi anche

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

Restituisce un valore long che specifica il numero di intervalli di tempo tra due valori Date.Returns a long value specifying the number of time intervals between two Date values.

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

Parametri

Interval
String

Obbligatorio.Required. Valore dell'enumerazione DateInterval o espressione String che rappresenta l'intervallo di tempo da usare come unità di differenza tra Date2 e Date1.A DateInterval enumeration value or a string expression representing the time interval you want to use as the unit of difference between Date1 and Date2.

Date1
Object

Obbligatorio.Required. Il primo valore di data/ora che si desidera utilizzare nel calcolo.The first date/time value you want to use in the calculation.

Date2
Object

Obbligatorio.Required. Il secondo valore di data/ora che si desidera utilizzare nel calcolo.The second date/time value you want to use in the calculation.

DayOfWeek
FirstDayOfWeek

Opzionale.Optional. Valore scelto dall'enumerazione FirstDayOfWeek che specifica il primo giorno della settimana.A value chosen from the FirstDayOfWeek enumeration that specifies the first day of the week. Se omesso, viene utilizzato Sunday.If not specified, Sunday is used.

WeekOfYear
FirstWeekOfYear

Opzionale.Optional. Valore scelto dall'enumerazione FirstWeekOfYear che specifica il primo giorno dell'anno.A value chosen from the FirstWeekOfYear enumeration that specifies the first week of the year. Se omesso, viene utilizzato Jan1.If not specified, Jan1 is used.

Restituisce

Valore long che specifica il numero di intervalli di tempo tra due valori Date.A long value specifying the number of time intervals between two Date values.

Eccezioni

Date1, Date2 o DayofWeek non è compreso nell'intervallo consentito.Date1, Date2, or DayofWeek is out of range.

Date1 o Date2 è di un tipo non valido.Date1 or Date2 is of an invalid type.

Esempi

In questo esempio viene DateDiff utilizzata la funzione per visualizzare il numero di giorni tra una data specificata e l'ora.This example uses the DateDiff function to display the number of days between a given date and today.

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

Commenti

È possibile utilizzare la DateDiff funzione per determinare il numero di intervalli di tempo specificati tra due valori di data/ora.You can use the DateDiff function to determine how many specified time intervals exist between two date/time values. Ad esempio, è possibile usare DateDiff per calcolare il numero di giorni tra due date o il numero di settimane tra oggi e la fine dell'anno.For example, you might use DateDiff to calculate the number of days between two dates, or the number of weeks between today and the end of the year.

ComportamentoBehavior

  • Trattamento dei parametri.Treatment of Parameters. DateDiffsottrae il valore di Date1 dal valore di Date2 per produrre la differenza.DateDiff subtracts the value of Date1 from the value of Date2 to produce the difference. Nessuno dei due valori viene modificato nel programma chiamante.Neither value is changed in the calling program.

  • Valori restituiti.Return Values. Poiché Date1 Date e Date2 sono del tipo di dati, i valori di data e ora vengono mantenuti accurati per i segni di 100-nanosecondi sul timer di sistema.Because Date1 and Date2 are of the Date data type, they hold date and time values accurate to 100-nanosecond ticks on the system timer. Tuttavia, DateDiff restituisce sempre il numero di intervalli di tempo Long come valore.However, DateDiff always returns the number of time intervals as a Long value.

    Se Date1 rappresenta una data e un' Date2ora successive a DateDiff , restituisce un numero negativo.If Date1 represents a later date and time than Date2, DateDiff returns a negative number.

  • Intervalli di giorni.Day Intervals. Se Interval è impostato su DateInterval.DayOfYear, DateInterval.Dayviene considerato uguale a, perché DayOfYear non è un'unità significativa per un intervallo di tempo.If Interval is set to DateInterval.DayOfYear, it is treated the same as DateInterval.Day, because DayOfYear is not a meaningful unit for a time interval.

  • Intervalli di settimana.Week Intervals. Se Interval è impostato su DateInterval.WeekOfYear, il valore restituito rappresenta il numero di settimane tra il primo giorno della settimana contenente Date1 e il primo giorno della settimana contenente Date2.If Interval is set to DateInterval.WeekOfYear, the return value represents the number of weeks between the first day of the week containing Date1 and the first day of the week containing Date2. Nell'esempio seguente viene illustrato come produrre risultati diversi da DateInterval.Weekday.The following example shows how this produces different results from 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)
    

    Nell'esempio precedente, DateDiff restituisce 0 a wD perché la differenza tra le due date è inferiore a sette giorni, ma restituisce 1 a wY perché esiste una differenza di sette giorni tra i primi giorni del rispettivo calendario settimane.In the preceding example, DateDiff returns 0 to wD because the difference between the two dates is less than seven days, but it returns 1 to wY because there is a seven-day difference between the first days of the respective calendar weeks.

  • Intervalli maggiori.Larger Intervals. Se Interval è impostato su DateInterval.Year, il valore restituito viene calcolato esclusivamente dalle parti dell'anno di Date1 e Date2di.If Interval is set to DateInterval.Year, the return value is calculated purely from the year parts of Date1 and Date2. Analogamente, il valore restituito DateInterval.Month per viene calcolato esclusivamente dalle parti dell'anno e del mese degli argomenti e da DateInterval.Quarter per i trimestri contenenti le due date.Similarly, the return value for DateInterval.Month is calculated purely from the year and month parts of the arguments, and for DateInterval.Quarter from the quarters containing the two dates.

    Se, ad esempio, si esegue il confronto tra il 31 dicembre e il DateDiff 1 ° gennaio DateInterval.Yeardell'anno seguente DateInterval.Month, restituisce 1 per, DateInterval.Quartero, anche se è trascorso al massimo un giorno.For example, when comparing December 31 to January 1 of the following year, DateDiff returns 1 for DateInterval.Year, DateInterval.Quarter, or DateInterval.Month, even though at most only one day has elapsed.

    Per le impostazioni cultura come il giapponese che hanno più ere DateDiff , il metodo non restituisce una differenza in anni se la differenza si estende su due o più ere.For cultures such as Japanese that have multiple eras, the DateDiff method does not return a difference in years if the difference spans two or more eras. In alternativa, è possibile calcolare la differenza nei valori restituiti dalla Year proprietà, come illustrato nell'esempio seguente:. date2.Year - date1.YearInstead, you can calculate the difference in values returned by the Year property, as shown in the following example: date2.Year - date1.Year.

  • Altri intervalli.Other Intervals. Poiché ogni Date valore è supportato da una DateTime struttura, i relativi metodi offrono opzioni aggiuntive per la ricerca degli intervalli temporali.Since every Date value is supported by a DateTime structure, its methods give you additional options in finding time intervals. Ad esempio, è possibile usare il Subtract metodo in uno dei form in overload: DateTime.Subtract sottrae un oggetto TimeSpan da una Date variabile per restituire un altro Date valore e DateTime.Subtract sottrae un Date valore per restituire un TimeSpanoggetto.For example, you can use the Subtract method in either of its overloaded forms: DateTime.Subtract subtracts a TimeSpan from a Date variable to return another Date value, and DateTime.Subtract subtracts a Date value to return a TimeSpan. È possibile eseguire un processo per determinare il numero di millisecondi necessari, come illustrato nell'esempio riportato di seguito.You can time a process to find out how many milliseconds it takes, as the following example shows.

    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
    

L' Interval argomento può avere una delle impostazioni seguenti.The Interval argument can have one of the following settings.

Valore di enumerazioneEnumeration value Valore stringaString value Differenza tra unità di tempoUnit of time difference
DateInterval.Day "d""d" DayDay
DateInterval.DayOfYear "y""y" DayDay
DateInterval.Hour "h""h" HourHour
DateInterval.Minute "n""n" MinuteMinute
DateInterval.Month "m""m" MeseMonth
DateInterval.Quarter "q""q" TrimestreQuarter
DateInterval.Second "s""s" SecondSecond
DateInterval.Weekday "w""w" SettimanaWeek
DateInterval.WeekOfYear "ww""ww" Settimana di calendarioCalendar week
DateInterval.Year "yyyy""yyyy" AnnoYear

L' DayOfWeek argomento può avere una delle impostazioni seguenti.The DayOfWeek argument can have one of the following settings.

Valore di enumerazioneEnumeration value ValueValue DescriptionDescription
FirstDayOfWeek.System 00 Primo giorno della settimana specificato nelle impostazioni di sistemaFirst day of week specified in system settings
FirstDayOfWeek.Sunday 11 Domenica (impostazione predefinita)Sunday (default)
FirstDayOfWeek.Monday 22 Lunedì (conforme allo standard ISO 8601, sezione 3,17)Monday (complies with ISO standard 8601, section 3.17)
FirstDayOfWeek.Tuesday 33 MartedìTuesday
FirstDayOfWeek.Wednesday 44 MercoledìWednesday
FirstDayOfWeek.Thursday 55 GiovedìThursday
FirstDayOfWeek.Friday 66 VenerdìFriday
FirstDayOfWeek.Saturday 77 SaturdaySaturday

L' WeekOfYear argomento può avere una delle impostazioni seguenti.The WeekOfYear argument can have one of the following settings.

Valore di enumerazioneEnumeration value ValueValue DescriptionDescription
FirstWeekOfYear.System 00 Prima settimana dell'anno specificata nelle impostazioni di sistemaFirst week of year specified in system settings
FirstWeekOfYear.Jan1 11 Settimana in cui si verifica il 1 gennaio (impostazione predefinita)Week in which January 1 occurs (default)
FirstWeekOfYear.FirstFourDays 22 Settimana con almeno quattro giorni nel nuovo anno (conforme allo standard ISO 8601, sezione 3,17)Week that has at least four days in the new year (complies with ISO standard 8601, section 3.17)
FirstWeekOfYear.FirstFullWeek 33 Prima settimana intera del nuovo annoFirst full week in the new year

Vedi anche

Si applica a