{{fbdoc item="title" value="DateDiff"}}---- Gets the difference of two dates measured by a specified interval {{fbdoc item="syntax"}}## [[KeyPgDeclare|declare]] [[KeyPgFunction|function]] **""DateDiff""** ( [[KeyPgByref|byref]] //interval// [[KeyPgAs|as]] [[KeyPgConstQualifier|const]] [[KeyPgString|string]], [[KeyPgByval|byval]] //serial1// [[KeyPgAs|as]] [[KeyPgDouble|double]], [[KeyPgByval|byval]] //serial2// [[KeyPgAs|as]] [[KeyPgDouble|double]], [[KeyPgByval|byval]] //firstdayofweek// [[KeyPgAs|as]] [[KeyPgLong|long]] = fbUseSystem, [[KeyPgByval|byval]] //firstdayofyear// [[KeyPgAs|as]] [[KeyPgLong|long]] = fbUseSystem ) [[KeyPgAs|as]] [[KeyPgLongint|longint]] ## {{fbdoc item="usage"}}## #include "vbcompat.bi" //result// = **""DateDiff""**( //interval//, //date_serial1//, //date_serial2// [, //firstdayofWeek// [, //firstweekofyear// ] ] ) ## {{fbdoc item="param"}} ##//interval//## the unit of time (interval) with which to measure the difference ##//date_serial1//## starting date serial ##//date_serial2//## end date serial ##//firstdayofweek//## first day of the week ##//firstdayofyear//## first day of the year {{fbdoc item="ret"}} Returns a ##[[KeyPgLongint|longint]]## corresponding to the number of ##//interval//##s found between two [[ProPgDates|Date Serials]]. If ##//date_serial1//## > ##//date_serial2//##, the result is negative. {{fbdoc item="desc"}} ##//interval//## is specified as follows: {{table columns="2" cellpadding="1" cells="value;interval;yyyy;years;q;quarter(three months);m;months;w; seven day periods; ww;calendar weeks;d,y;days;h;hours;n;minutes;s;seconds"}} ##//first_dayofweek//## Affects the counting when ##'ww'## interval is used. {{table columns="3" cellpadding="1" cells="value;first day of week;constant;omitted;sunday;###;0;local settings;fbUseSystem;1;sunday;fbSunday;2;monday;fbMonday;3;tuesday;fbTuesday;4;wednesday;fbWednesday;5;thursday;fbThursday;6;friday;fbFriday;7;saturday;fbSaturday"}} ##//first_weekofyear//## specifies which year (previous or next) that the week which spans the end of one year and the beginning of the next should included with. {{table columns="3" cellpadding="1" cells="value;first week of year;constant;0;local settings;fbUseSystem;1;January 1's week;fbFirstJan1;2;first weeks having 4 days in the year;fbFirstFourDays;3;first full week of year;fbFirstFullWeek"}} Notice if you do an arithmetical subtraction of two date serials you get the difference in days. The compiler will not recognize this function unless ##vbcompat.bi## or ##datetime.bi## is included. {{fbdoc item="ex"}} {{fbdoc item="filename" value="examples/manual/dates/datediff.bas"}}%%(freebasic) #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 %% {{fbdoc item="diff"}} - Did not exist in QB. This function appeared in Visual Basic. {{fbdoc item="see"}} - [[ProPgDates|Date Serials]] {{fbdoc item="back" value="CatPgDate|Date and Time Functions"}}