So only 1 agent at work each week ? if so put rotation in your agent dataset. *Make a dateset with your agents; *rotation is the schedule if only one agent at work each week; data agents; input name $ rotation; datalines; Raj 0 Ravi 1 Ram 2 ; run; data schedule; set agents; *start as monday; *change today() to a another date if another start is needed like '01jan2014'd ; start=intnx('week', today(), rotation)+1; * +1 to get monday; do start_date = start to '31dec2014'd by 20; *20 = 3 weeks rotation (3*7 days)-1; end_date=start_date +4; output; end; format start_date end_date date9.; drop start; run; proc sort; by start_date name ; run; Result: 1 Raj 0 25AUG2014 29AUG2014 2 Ravi 1 01SEP2014 05SEP2014 3 Ram 2 08SEP2014 12SEP2014 4 Raj 0 14SEP2014 18SEP2014 5 Ravi 1 21SEP2014 25SEP2014 6 Ram 2 28SEP2014 02OCT2014 7 Raj 0 04OCT2014 08OCT2014 8 Ravi 1 11OCT2014 15OCT2014 9 Ram 2 18OCT2014 22OCT2014 10 Raj 0 24OCT2014 28OCT2014 11 Ravi 1 31OCT2014 04NOV2014 12 Ram 2 07NOV2014 11NOV2014 13 Raj 0 13NOV2014 17NOV2014 14 Ravi 1 20NOV2014 24NOV2014 15 Ram 2 27NOV2014 01DEC2014 16 Raj 0 03DEC2014 07DEC2014 17 Ravi 1 10DEC2014 14DEC2014 18 Ram 2 17DEC2014 21DEC2014 19 Raj 0 23DEC2014 27DEC2014 20 Ravi 1 30DEC2014 03JAN2015 proc print; quit;
... View more