DateDiff
 
Возвращает разность двух дат, измеряемых с заданным интервалом

Синтаксис

Declare Function DateDiff ( ByRef interval As Const String, ByVal serial1 As Double, ByVal serial2 As Double, ByVal firstdayofweek As Integer = fbUseSystem, ByVal firstdayofyear As Integer = fbUseSystem ) As Integer

Использование

#include "vbcompat.bi"
result = DateDiff( interval, date_serial1, date_serial2 [, firstdayofWeek [, firstweekofyear ] ] )

Параметры

interval
единица времени (интервал) с которым измеряется разница
date_serial1
Начальная серийная дата
date_serial2
Конечная серийная дата
firstdayofweek
первый день недели
firstdayofyear
первый день в году

Возвращаемое значение

Возвращает целое число, соответствующее количеству intervals , найденное между двумя Date Serials(серийными датами).

Если date_serial1 > date_serial2, результат отрицательный.

Описание


interval определяется следующим образом:

значение интервал
yyyyгоды
q квартал(три месяца)
mмесяцы
w неделя
wwкалендарная неделя
d,y дни
hчасы
n минуты
sсекунды


first_dayofweek влияет на подсчет когда используется интервал 'ww'.

значение первый день неделиконстанта
опущенвоскресенье 
0 локальные настройкиfbUseSystem
1 воскресеньеfbSunday
2 понедельникfbMonday
3 вторникfbTuesday
4 средаfbWednesday
5 четвергfbThursday
6 пятницаfbFriday
7 субботаfbSaturday


first_weekofyear определяет первую неделю года.

значение первая неделя годаконстанта
0 локальные настройкиfbUseSystem
1 неделя, на которую приходится 1 январяfbFirstJan1
2 неделя, на которую приходится не меньше четырех дней нового годаfbFirstFourDays
3 первая полная неделя в новом годуfbFirstFullWeek


Обратите внимание, если вы делаете арифметическое вычитание двух серийных дат,  вы получаете разницу в днях.

Компилятор не распознает эту функцию если не включен vbcompat.bi или datetime.bi.

Пример

#include "vbcompat.bi"

Dim s As String, d1 As Double, d2 As Double

Line Input "Enter your birthday: ", s

If IsDate( s ) Then
  d1 = DateValue( s )
  d2 = Now()

  Print "You are " & DateDiff( "yyyy", d1, d2 ) & " years old."
  Print "You are " & DateDiff( "d", d1, d2 ) & " days old."
  Print "You are " & DateDiff( "s", d1, d2 ) & " seconds old."

Else
  Print "Invalid date"

End If


Отличия от QB

  • В QB не существует. Эта функция появилась в Visual Basic.

См. также