Function code
Code: Select all
{ 27-6-2011: NumOfWorkDays - Function for calculating the number of days between two dates }
Inputs:
StartDate(NumericSimple),
EndDate(NumericSimple);
Vars:
numOfDaysCounter(0), // Number of working days between dates
julStartDate(0), // Start date converted to Julian date
julEndDate(0) // End date converted to Julian
;
julStartDate = DateToJulian(StartDate); // Convert dates to Julian format
julEndDate = DateToJulian(EndDate);
If julEndDate > julStartDate then begin // End date should be higher then starting date
For value1 = julEndDate DownTo julStartDate + 1 begin
value2 = JulianToDate(value1); // Convert julian date back to normal date
value3 = DayOfWeek(value2); // Determine day of week
if value3 > 0 and value3 < 6 then // Day should be higher then 0 (Sunday) and lower then 6 (Saturday)
numOfDaysCounter = numOfDaysCounter + 1;
end;
end;
NumOfWorkDays = numOfDaysCounter;
For example, the days between the first trade and last trade:
Code: Select all
if LastBarOnChart_s then begin
Print("EntryDate: ", EntryDate(totaltrades), " ExitDate: ", Exitdate(1));
Print("Number of working days: ", NumOfWorkDays(entrydate(totalTrades), exitdate(1)));
end;
Code: Select all
Print("Number of working days: ", NumOfWorkDays(date[300], date));
Code: Select all
value87 = 1110620.00;
value88 = 1110627.00;
Print("Number of working days: ", NumOfWorkDays(value87, value88));
Josh