I am trying to generate dates where the first group will get a date say 7 days from today and the second date will be say 180 days from today, the next group will get a date next day and so on. The dates will be from Monday to Friday. I am facing issues around weekends. Any help in this will be greatly appreciated.
Sample data with output;
i
groups
Date1
Date2
1
1
31-May-21
29-Nov-21
2
1
31-May-21
29-Nov-21
3
2
2-Jun-21
30-Nov-21
4
2
2-Jun-21
30-Nov-21
5
3
3-Jun-21
1-Dec-21
6
3
3-Jun-21
1-Dec-21
7
4
4-Jun-21
2-Dec-21
8
4
4-Jun-21
2-Dec-21
9
5
7-Jun-21
3-Dec-21
10
5
7-Jun-21
3-Dec-21
11
6
10-Jun-21
6-Dec-21
12
6
10-Jun-21
6-Dec-21
13
7
11-Jun-21
7-Dec-21
14
7
11-Jun-21
7-Dec-21
15
8
12-Jun-21
9-Dec-21
16
8
12-Jun-21
9-Dec-21
17
9
13-Jun-21
10-Dec-21
18
9
13-Jun-21
10-Dec-21
19
10
14-Jun-21
11-Dec-21
20
10
14-Jun-21
11-Dec-21
The current code:
data dates; do i=1 to 20; groups=ceil(i/2); output; end; run;
data &work..want; Set &work..dates ; format Date1 calldate2 d1 d2 date9.; retain n d1 d2 ; Date1=today()+7; d1=Date1;
do n=1 to 10; if groups=n then do; Date1=d1+n-1; if Weekday(Date1)=1 then Date1=Date1+1; if Weekday(Date1)=7 then Date1=Date1+2; CallDate2=Date1+180; if Weekday(CallDate2)=1 then CallDate2=CallDate2+1; if Weekday(CallDate2)=7 then CallDate2=CallDate2+2; end; d1=Date1+1; d2=calldate2+1; if Weekday(d1)=1 then d1=d1+1; if Weekday(d1)=7 then d1=d1+2;
end; drop n;
run;
Thanks
... View more