Sie sind auf Seite 1von 6

Funzione DateDiff (Visual Basic)

1 di 6

https://msdn.microsoft.com/it-it/library/b5xbyt6f(d=printer,v=vs.90).aspx

Funzione DateDiff (Visual Basic)


Aggiornamento: novembre 2007
Restituisce un valore Long corrispondente al numero di intervalli di tempo tra due valori Date.

Public Overloads Function DateDiff( _


ByVal Interval As [ DateInterval | String ], _
ByVal Date1 As DateTime, _
ByVal Date2 As DateTime, _
Optional ByVal DayOfWeek As FirstDayOfWeek = FirstDayOfWeek.Sunday, _
Optional ByVal WeekOfYear As FirstWeekOfYear = FirstWeekOfYear.Jan1 _
) As Long

Parametri
Interval
Obbligatorio. Valore di enumerazione DateInterval o espressione String che rappresenta l'intervallo di tempo da utilizzare come unit di misura della differenza tra Date1 e Date2.
Date1
Date2

Obbligatorio. Date. Primo valore di data/ora che si desidera utilizzare nel calcolo.
Obbligatorio. Date. Secondo valore di data/ora che si desidera utilizzare nel calcolo.

DayOfWeek
Facoltativo. Valore scelto dall'enumerazione FirstDayOfWeek che indica il primo giorno della settimana. Se non viene specificato, viene utilizzato FirstDayOfWeek.Sunday.
WeekOfYear
Facoltativo. Valore scelto dall'enumerazione FirstWeekOfYear che indica la prima settimana dell'anno. Se non viene specificato, viene utilizzato FirstWeekOfYear.Jan1.

Impostazioni
Di seguito sono indicate le possibili impostazioni dell'argomento Interval.

26/10/2016 20:54

Funzione DateDiff (Visual Basic)

2 di 6

https://msdn.microsoft.com/it-it/library/b5xbyt6f(d=printer,v=vs.90).aspx

Valore di enumerazione

Valore stringa

Unit di misura della differenza temporale

DateInterval.Day

"d"

Giorno

DateInterval.DayOfYear

"y"

Giorno

DateInterval.Hour

"h"

Ora

DateInterval.Minute

"n"

Minuto

DateInterval.Month

"m"

Mese

DateInterval.Quarter

"q"

Trimestre

DateInterval.Second

"s"

Secondo

DateInterval.Weekday

"w"

Settimana

DateInterval.WeekOfYear

"ww"

Settimana del calendario

DateInterval.Year

"yyyy"

Anno

Di seguito sono indicate le possibili impostazioni dell'argomento DayOfWeek.

Valore di enumerazione

Valore

Descrizione

FirstDayOfWeek.System

Primo giorno della settimana specificato nelle impostazioni


di sistema

FirstDayOfWeek.Sunday

Domenica (impostazione predefinita)

FirstDayOfWeek.Monday

Luned (conforme allo standard ISO 8601, sezione 3.17)

FirstDayOfWeek.Tuesday

Marted

FirstDayOfWeek.Wednesday

Mercoled

FirstDayOfWeek.Thursday

Gioved

FirstDayOfWeek.Friday

Venerd

26/10/2016 20:54

Funzione DateDiff (Visual Basic)

3 di 6

FirstDayOfWeek.Saturday

https://msdn.microsoft.com/it-it/library/b5xbyt6f(d=printer,v=vs.90).aspx

Sabato

Di seguito sono indicate le possibili impostazioni dell'argomento WeekOfYear.

Valore di enumerazione

Valore

Descrizione

FirstWeekOfYear.System

Prima settimana dell'anno specificata nelle impostazioni


di sistema

FirstWeekOfYear.Jan1

Settimana in cui cade l'1 gennaio (impostazione


predefinita).

FirstWeekOfYear.FirstFourDays

Settimana in cui almeno quattro giorni cadono nel


nuovo anno (conforme allo standard ISO 8601, sezione
3.17)

FirstWeekOfYear.FirstFullWeek

Prima settimana completa del nuovo anno

Eccezioni
Tipo di eccezione

Numero di
errore

Condizione

ArgumentException

Interval non valido.

ArgumentException

Date1, Date2 o DayofWeek non compreso nell'intervallo


consentito.

InvalidCastException

13

Date1 o Date2 di un tipo non valido.

Se si esegue l'aggiornamento delle applicazioni Visual Basic 6.0 che utilizzano la gestione degli errori non strutturata, vedere la colonna "Numero di errore". possibil e confrontare il numero di errore con la Propriet
Number (oggetto Err). Se possibile, tuttavia, si consiglia di sostituire il controllo dell'errore con la procedura illustrata nella sezione Cenni preliminari sulla gestione strutturata delle eccezioni per Visual Basic.

Note
Utilizzare la funzione DateDiff per determinare quanti intervalli temporali specifici vi sono tra due valori data/ora. Ad esempio, possibile utilizzare DateDiff per calcolare il numero di giorni tra due date o il numero di

26/10/2016 20:54

Funzione DateDiff (Visual Basic)

4 di 6

https://msdn.microsoft.com/it-it/library/b5xbyt6f(d=printer,v=vs.90).aspx

settimane tra la data attuale e la fine dell'anno.

Comportamento
Gestione dei parametri.DateDiff sottrae il valore di Date1 da quello di Date2 per ottenere la differenza. Nessuno dei due valori viene modificato nel programma chiamante.
Valori restituiti. Poich Date1 e Date2 sono del tipo di dati Date, contengono valori di data e ora con l'accuratezza di 100 nanosecondi propria del timer di sistema. DateDiff, tuttavia, restituisce sempre il numero di
intervalli di tempo come valore Long.
Se Date1 rappresenta una data e un'ora successive rispetto a Date2, DateDiff restituir un numero negativo.
Intervalli di giorni. Se Interval impostato su DateInterval.DayOfYear, viene considerato come DateInterval.Day poich DayOfYear non un'unit di misura significativa per un intervallo di tempo.
Intervalli di settimane. Se Interval impostato su DateInterval.WeekOfYear, il valore restituito rappresenta il numero di settimane comprese tra il primo giorno della settimana contenente Date1 e il primo giorno
della settimana contenente Date2. Nell'esempio riportato di seguito viene illustrato come questo produca risultati diversi da DateInterval.Weekday.
VB
' 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 per wD perch la differenza tra le due date inferiore a sette giorni, mentre restituisce 1 per wY perch tra i primi giorni delle rispettive settimane di calendario vi una
differenza di sette giorni.

Attenzione:
Quando la parte relativa all'ora di Date1 pi grande di Date2 e Interval impostato su DateInterval.WeekOfYear, la funzione DateDiff restituisce un valore inferiore di uno rispetto al valore corretto.
Intervalli maggiori. Se Interval impostato su DateInterval.Year, il valore restituito viene calcolato solo dalle parti di Date1 e Date2 relative all'anno. In modo analogo, il valore restituito per DateInterval.Month
viene calcolato unicamente dalle parti degli argomenti relative all'anno e al mese e per DateInterval.Quarter dai trimestri che contengono le due date.
Quando ad esempio si confrontano le date 31 dicembre e 1 gennaio dell'anno seguente, DateDiff restituisce 1 per DateInterval.Year, DateInterval.Quarter o DateInterval.Month, anche se trascorso al massimo un
solo giorno.
Altri intervalli. Poich ogni valore di Date supportato da una struttura DateTime, i relativi metodi offrono ulteriori opzioni per l'individuazione di intervalli di tempo. ad esempio possibile utilizzare il metodo
Subtract in una delle relative versioni di overload: DateTime.Subtract sottrae un oggetto TimeSpan da una variabile Date per restituire un altro valore Date, mentre il metodo DateTime.Subtract sottrae un valore
Date per restituire un oggetto TimeSpan. possibile cronometrare un processo per determinare il numero di millisecondi impiegato, come illustrato nel seguente esempio.
VB

26/10/2016 20:54

Funzione DateDiff (Visual Basic)

5 di 6

https://msdn.microsoft.com/it-it/library/b5xbyt6f(d=printer,v=vs.90).aspx

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 Integer = runLength.Milliseconds

Esempio
Nell'esempio riportato di seguito la funzione DateDiff viene utilizzata per visualizzare il numero di giorni compreso tra una determinata data e la data odierna.
VB
Dim firstDate, msg As String
Dim secondDate As Date
firstDate = InputBox("Enter a date")
secondDate = CDate(firstDate)
msg = "Days from today: " & DateDiff(DateInterval.Day, Now, secondDate)
MsgBox(msg)

Requisiti
Spazio dei nomi:Microsoft.VisualBasic
Modulo:DateAndTime
Assembly:Visual Basic Runtime Library (in Microsoft.VisualBasic.dll)

Vedere anche
Riferimenti

Funzione DateAdd (Visual Basic)


Funzione DatePart (Visual Basic)
Funzione Day (Visual Basic)
Funzione Format
Propriet Now
Funzione Weekday (Visual Basic)
Funzione Year (Visual Basic)

26/10/2016 20:54

Funzione DateDiff (Visual Basic)

6 di 6

https://msdn.microsoft.com/it-it/library/b5xbyt6f(d=printer,v=vs.90).aspx

Tipo di dati Date (Visual Basic)


DateTime
TimeSpan

Aggiunte alla community

2016 Microsoft

26/10/2016 20:54

Das könnte Ihnen auch gefallen