DateRange ( startDate ; finishDate ; returnType )
Calculate the number of days "d", months "m" or years "y" between two dates
Average rating: 4.3 (32 votes) Log in to vote
Michael Richards itraining http://www.itraining.com.au |
DateRange ( 1/1/2007 ; 31/12/2007 ; "m" )
DateRange ( 1/1/2007 ; 31/12/2007 ; "y" )
/*
dates shown are in Australian format d/m/yyyy
*/
12
1
Function definition: (Copy & paste into FileMaker's Edit Custom Function window)
NOTES:
In a nutshell , the LET statement prepares and calculates all required variables.
The "availableDates" variable decides if both the startDate and finishDate fields supplied are available and valid.
Alternatively, only the startDate is available and valid so a date range can be calculated from the current date.
The "days" variable calculates the number of days between the two date fields.
Alternatively, the current date is used if the only the startDate field is available and valid.
The "months" variable approximates the number of months between the two date fields using the "days" calculation.
Similarly, "years" variable approximates the number of years between the two date fields using the "days" calculation.
Finally the "returnType" parameter is entered as either "d", "m" or "y" which returns the number of days, months (approximate) or years (approximate) respectively.
Probably should trap for startDate < finishDate in the LET function as well. You can do that bit.
Comments
Fabio, Italy Jun 26, 2017 |
||
There is a problem when return 3 years in months. i.e. Let ( [ ~startDate = Date ( 7; 1; 2017 ); ~endDate = Date ( 6; 30; 2020 ); ~result = round ( ( ~endDate - ~startDate ) / 30; 0 ) ]; ~result //37 wrong result! ) round ( ( ~endDate - ~startDate ) / 30; 0 ) should be: round ( ( ~endDate - ~startDate ) / 30.42; 0 ) |
||
Note: these functions are not guaranteed or supported by BrianDunning.com. Please contact the individual developer with any questions or problems.