DateAndTime.DateDiff Metodo

Definizione

Restituisce un valore che specifica il numero di intervalli di tempo tra due valori Date.

Overload

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

Sottrae Date1 da Date2 per assegnare un valore long che specifica il numero di intervalli di tempo tra i due Date valori.

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

Sottrae Date1 da Date2 per assegnare un valore long che specifica il numero di intervalli di tempo tra i due Date valori.

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

Source:
DateAndTime.vb
Source:
DateAndTime.vb
Source:
DateAndTime.vb

Sottrae Date1 da Date2 per assegnare un valore lungo specificando il numero di intervalli di tempo tra i due Date valori.

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. Valore dell'enumerazione DateInterval o espressione String che rappresenta l'intervallo di tempo da usare come unità di differenza tra Date2 e Date1.

Date1
DateTime

Obbligatorio. Il primo valore di data/ora che si desidera utilizzare nel calcolo.

Date2
DateTime

Obbligatorio. Il secondo valore di data/ora che si desidera utilizzare nel calcolo.

DayOfWeek
FirstDayOfWeek

facoltativo. Valore scelto dall'enumerazione FirstDayOfWeek che specifica il primo giorno della settimana. Se omesso, viene utilizzato Sunday.

WeekOfYear
FirstWeekOfYear

facoltativo. Valore scelto dall'enumerazione FirstWeekOfYear che specifica il primo giorno dell'anno. Se omesso, viene utilizzato Jan1.

Restituisce

Valore long che specifica il numero di intervalli di tempo tra due valori Date.

Eccezioni

Date1, Date2 o DayofWeek non è compreso nell'intervallo consentito.

Date1 o Date2 è di un tipo non valido.

Esempio

In questo esempio viene usata la DateDiff funzione per visualizzare il numero di giorni tra una data e l'ora specificata.

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 usare la DateDiff funzione per determinare il numero di intervalli di tempo specificati tra due valori di data/ora. Ad esempio, è possibile utilizzare DateDiff per calcolare il numero di giorni tra due date o il numero di settimane tra oggi e la fine dell'anno.

Comportamento

  • Trattamento dei parametri. DateDiff sottrae il valore di dal valore di Date1Date2 per produrre la differenza. Nessuno dei due valori viene modificato nel programma chiamante.

  • Valori restituiti. Poiché Date1 e Date2 sono del Date tipo di dati, contengono valori di data e ora accurati a 100 nanosecondi nel timer di sistema. Tuttavia, DateDiff restituisce sempre il numero di intervalli di tempo come Long valore.

    Se Date1 rappresenta una data e un'ora successive di Date2, DateDiff restituisce un numero negativo.

  • Intervalli di giorno. Se Interval è impostato su DateInterval.DayOfYear, viene trattato come DateInterval.Day, perché DayOfYear non è un'unità significativa per un intervallo di tempo.

  • Intervalli di settimana. 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. Nell'esempio seguente viene illustrato come questo produce risultati diversi da 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 delle rispettive settimane di calendario.

  • Intervalli più grandi. Se Interval è impostato su DateInterval.Year, il valore restituito viene calcolato esclusivamente dalle parti dell'anno di Date1 e Date2. Analogamente, il valore restituito per DateInterval.Month viene calcolato esclusivamente dalle parti dell'anno e del mese degli argomenti e per DateInterval.Quarter dai trimestri contenenti le due date.

    Ad esempio, quando si confronta il 31 dicembre e il 1 gennaio dell'anno successivo, DateDiff restituisce 1 per DateInterval.Year, DateInterval.Quartero DateInterval.Month, anche se al massimo è trascorso un solo giorno.

    Per le impostazioni cultura come il giapponese con più ere, il DateDiff metodo non restituisce una differenza negli anni se la differenza si estende su due o più ere. È invece possibile calcolare la differenza nei valori restituiti dalla Year proprietà , come illustrato nell'esempio seguente: date2.Year - date1.Year.

  • Altri intervalli. Poiché ogni Date valore è supportato da una DateTime struttura, i relativi metodi offrono opzioni aggiuntive per trovare gli intervalli di tempo. Ad esempio, è possibile utilizzare il Subtract metodo in una delle relative forme di 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 oggetto TimeSpan. È possibile eseguire un processo per individuare il numero di millisecondi necessari, come illustrato nell'esempio seguente.

    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'argomento Interval può avere una delle impostazioni seguenti.

Valore di enumerazione Valore stringa Unità di differenza di tempo
DateInterval.Day "d" Giorno
DateInterval.DayOfYear "y" Giorno
DateInterval.Hour "h" Ora
DateInterval.Minute "n" Minuto
DateInterval.Month "m" Month
DateInterval.Quarter "q" Quarter
DateInterval.Second "s" Second
DateInterval.Weekday "w" Settimana
DateInterval.WeekOfYear "ww" Settimana del calendario
DateInterval.Year "yyyy" Year

L'argomento DayOfWeek può avere una delle impostazioni seguenti.

Valore di enumerazione valore Descrizione
FirstDayOfWeek.System 0 Primo giorno della settimana specificato nelle impostazioni di sistema
FirstDayOfWeek.Sunday 1 Domenica (impostazione predefinita)
FirstDayOfWeek.Monday 2 Lunedì (conforme allo standard ISO 8601, sezione 3.17)
FirstDayOfWeek.Tuesday 3 Tuesday
FirstDayOfWeek.Wednesday 4 Wednesday
FirstDayOfWeek.Thursday 5 Thursday
FirstDayOfWeek.Friday 6 Friday
FirstDayOfWeek.Saturday 7 Sabato

L'argomento WeekOfYear può avere una delle impostazioni seguenti.

Valore di enumerazione valore Descrizione
FirstWeekOfYear.System 0 Prima settimana dell'anno specificata nelle impostazioni di sistema
FirstWeekOfYear.Jan1 1 Settimana in cui si verifica il 1° gennaio (impostazione predefinita)
FirstWeekOfYear.FirstFourDays 2 Settimana con almeno quattro giorni nel nuovo anno (conforme allo standard ISO 8601, sezione 3.17)
FirstWeekOfYear.FirstFullWeek 3 Prima settimana completa nel nuovo anno

Vedi anche

Si applica a

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

Source:
DateAndTime.vb
Source:
DateAndTime.vb
Source:
DateAndTime.vb

Sottrae Date1 da Date2 per assegnare un valore lungo specificando il numero di intervalli di tempo tra i due Date valori.

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

Parametri

Interval
String

Obbligatorio. Valore dell'enumerazione DateInterval o espressione String che rappresenta l'intervallo di tempo da usare come unità di differenza tra Date2 e Date1.

Date1
Object

Obbligatorio. Il primo valore di data/ora che si desidera utilizzare nel calcolo.

Date2
Object

Obbligatorio. Il secondo valore di data/ora che si desidera utilizzare nel calcolo.

DayOfWeek
FirstDayOfWeek

facoltativo. Valore scelto dall'enumerazione FirstDayOfWeek che specifica il primo giorno della settimana. Se omesso, viene utilizzato Sunday.

WeekOfYear
FirstWeekOfYear

facoltativo. Valore scelto dall'enumerazione FirstWeekOfYear che specifica il primo giorno dell'anno. Se omesso, viene utilizzato Jan1.

Restituisce

Valore long che specifica il numero di intervalli di tempo tra due valori Date.

Eccezioni

Date1, Date2 o DayofWeek non è compreso nell'intervallo consentito.

Date1 o Date2 è di un tipo non valido.

Esempio

In questo esempio viene usata la funzione per visualizzare il DateDiff numero di giorni tra una data specificata e oggi.

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 usare la funzione per determinare il DateDiff numero di intervalli di tempo specificati tra due valori di data/ora. 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.

Comportamento

  • Trattamento dei parametri. DateDiff sottrae il valore di dal valore di Date1Date2 per produrre la differenza. Nessun valore viene modificato nel programma chiamante.

  • Valori restituiti. Poiché Date1 e Date2 sono del tipo di Date dati, contengono valori di data e ora accurati per 100-nanosecondi sul timer di sistema. Tuttavia, DateDiff restituisce sempre il numero di intervalli di tempo come Long valore.

    Se Date1 rappresenta una data e un'ora successive rispetto a Date2, DateDiff restituisce un numero negativo.

  • Intervalli di giorno. Se Interval è impostato su DateInterval.DayOfYear, viene trattato come DateInterval.Day, perché DayOfYear non è un'unità significativa per un intervallo di tempo.

  • Intervalli di settimana. Se Interval è impostato su DateInterval.WeekOfYear, il valore restituito rappresenta il numero di settimane tra il primo giorno della settimana contenente e il primo giorno della settimana contenente Date1Date2. Nell'esempio seguente viene illustrato come questo produce risultati diversi da 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 è minore di sette giorni, ma restituisce 1 a wY perché esiste una differenza di sette giorni tra i primi giorni delle rispettive settimane di calendario.

  • Intervalli più grandi. Se Interval è impostato su DateInterval.Year, il valore restituito viene calcolato esclusivamente dalle parti dell'anno di Date1 e Date2. Analogamente, il valore restituito per DateInterval.Month viene calcolato esclusivamente dalle parti dell'anno e del mese degli argomenti e per DateInterval.Quarter dai trimestri contenenti le due date.

    Ad esempio, quando si confronta il 31 dicembre al 1 gennaio dell'anno seguente, DateDiff restituisce 1 per DateInterval.Year, DateInterval.Quartero DateInterval.Month, anche se al massimo un giorno è trascorso.

    Per le culture come il giapponese con più era, il DateDiff metodo non restituisce una differenza negli anni se la differenza si estende su due o più epoche. È invece possibile calcolare la differenza nei valori restituiti dalla proprietà, come illustrato nell'esempio Year seguente: date2.Year - date1.Year.

  • Altri intervalli. Poiché ogni Date valore è supportato da una DateTime struttura, i relativi metodi offrono opzioni aggiuntive per trovare intervalli di tempo. Ad esempio, è possibile usare il Subtract metodo in uno dei moduli di overload: DateTime.Subtract sottrae TimeSpan un oggetto da una Date variabile per restituire un altro Date valore e DateTime.Subtract sottrae un Date valore per restituire un TimeSpanoggetto . È possibile eseguire un processo per individuare il numero di millisecondi necessari, come illustrato nell'esempio seguente.

    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'argomento Interval può avere una delle impostazioni seguenti.

Valore di enumerazione Valore stringa Unità di differenza di tempo
DateInterval.Day "d" Giorno
DateInterval.DayOfYear "y" Giorno
DateInterval.Hour "h" Ora
DateInterval.Minute "n" Minuto
DateInterval.Month "m" Month
DateInterval.Quarter "q" Quarter
DateInterval.Second "s" Second
DateInterval.Weekday "w" Settimana
DateInterval.WeekOfYear "ww" Settimana del calendario
DateInterval.Year "yyyy" Year

L'argomento DayOfWeek può avere una delle impostazioni seguenti.

Valore di enumerazione valore Descrizione
FirstDayOfWeek.System 0 Primo giorno della settimana specificato nelle impostazioni di sistema
FirstDayOfWeek.Sunday 1 Domenica (impostazione predefinita)
FirstDayOfWeek.Monday 2 Lunedì (conforme allo standard ISO 8601, sezione 3.17)
FirstDayOfWeek.Tuesday 3 Tuesday
FirstDayOfWeek.Wednesday 4 Wednesday
FirstDayOfWeek.Thursday 5 Thursday
FirstDayOfWeek.Friday 6 Friday
FirstDayOfWeek.Saturday 7 Sabato

L'argomento WeekOfYear può avere una delle impostazioni seguenti.

Valore di enumerazione valore Descrizione
FirstWeekOfYear.System 0 Prima settimana dell'anno specificata nelle impostazioni di sistema
FirstWeekOfYear.Jan1 1 Settimana in cui si verifica il 1 gennaio (impostazione predefinita)
FirstWeekOfYear.FirstFourDays 2 Settimana con almeno quattro giorni nel nuovo anno (conforme allo standard ISO 8601, sezione 3.17)
FirstWeekOfYear.FirstFullWeek 3 Prima settimana completa nel nuovo anno

Vedi anche

Si applica a