Skip to content

Latest commit

 

History

History
48 lines (32 loc) · 1.76 KB

README.md

File metadata and controls

48 lines (32 loc) · 1.76 KB

##Scheduled-based TimeWarp Calculator library for Discrete Event Simulations.

This library is specially suitable for Processes Simulations where the human factor is involved.

#Sample scenario:

For a simulation, at time=0, an employee is going to perform a task which requires 120 hours. This employee works from Monday to Friday, from 8:00 am to 12:00 and (after lunch) from 1:00p.m. to 5:00 p.m.

In a Discrete Simulation, for a Time Warp, it would be required to calculate, at what value of 'time' (in hours or minutes) will be the employee's task finished?

#Example of use

//Use hours as time unit
LaborTimeCalculatorFactory cf = LaborTimeCalculatorFactory.getInstance(TimeUnit.HOUR);

//Set weekly schedule (by default, all the week is laborable). 
//In this case, the employee works 4 hours only 
//at friday (8am - 12pm).
c.addDailyNonLaborableInterval(WeekDays.MON, cf.createDailyTimeInterval(0, 24));
c.addDailyNonLaborableInterval(WeekDays.TUE, cf.createDailyTimeInterval(0, 24));
c.addDailyNonLaborableInterval(WeekDays.WED, cf.createDailyTimeInterval(0, 24));
c.addDailyNonLaborableInterval(WeekDays.THU, cf.createDailyTimeInterval(0, 24));
c.addDailyNonLaborableInterval(WeekDays.FRI, cf.createDailyTimeInterval(0, 8));
c.addDailyNonLaborableInterval(WeekDays.FRI, cf.createDailyTimeInterval(12, 24));
c.addDailyNonLaborableInterval(WeekDays.SAT, cf.createDailyTimeInterval(0, 24));
c.addDailyNonLaborableInterval(WeekDays.SUN, cf.createDailyTimeInterval(0, 24));

//if the job is assigned at friday, at 8:00am (104'th hour of the week),
//when will the employee finish a 5-hour task?
int timeToJump=cf.getCalculator().moveTimeLaboralHours(c, 104, 5));

Héctor Fabio Cadavid Rengifo - 2013 Escuela Colombiana de Ingeniería

[email protected]