Wiki source for KeyPgDateDiff


Show raw source

{{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]] [[KeyPgLong|long]]
##
{{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 an integer 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"}}
Valid XHTML :: Valid CSS: :: Powered by WikkaWiki



sf.net phatcode