DATA Step, Macro, Functions and more

How to calculate the Saturday date from an existing date?

Accepted Solution Solved
Reply
Frequent Contributor
Posts: 96
Accepted Solution

How to calculate the Saturday date from an existing date?

Hi,

 

I have the table below, customer_id and the subscription date. I want to add another field showing the Saturday date before the sub date.

 

Your help would be much appreciated.

 

Thank You very much

 

 

Have

   
 

customer_id

sub_table_date

 
 

50095

22-Dec-15

 
 

50206

10-Jan-16

 
 

50220

26-May-16

 
       
       
 

Want

   
 

customer_id

sub_table_date

Saturday_before_dt

 

50095

22-Dec-15

19-Dec-15

 

50206

10-Jan-16

04-Jun-16

 

50220

26-May-16

21-May-16


Accepted Solutions
Solution
‎05-25-2017 04:23 AM
Super User
Super User
Posts: 7,401

Re: How to calculate the Saturday date from an existing date?

!!Post test data in the form of a datastep!!

Its not hard, and it saves lots of questions!!!

 

 

As such I am guessing dates are dates:

data have;	
  customer_id=50095; sub_table_date="22Dec2015"d;
run;
data want;
  set have;
  sat_date=sub_table_date;
  do while (weekday(sat_date) ne 7);
    sat_date=sat_date-1;
  end;
  format sub_table_date sat_date date9.;
run;

View solution in original post


All Replies
PROC Star
Posts: 169

Re: How to calculate the Saturday date from an existing date?

data have;

input customer_id sub_table_date :date9.;

datalines;

50095 22Dec2015

50206 10Jan2016

50220 26May2016

;

 

 data want;

set have;

do _n_=sub_table_date by -1 until(weekday(_n_)=7);

if weekday(_n_)=7 then Saturday_before_dt=_n_;

end;

format sub_table_date Saturday_before_dt date9.;

run;

 

Regards,

Naveen Srinivasan

Solution
‎05-25-2017 04:23 AM
Super User
Super User
Posts: 7,401

Re: How to calculate the Saturday date from an existing date?

!!Post test data in the form of a datastep!!

Its not hard, and it saves lots of questions!!!

 

 

As such I am guessing dates are dates:

data have;	
  customer_id=50095; sub_table_date="22Dec2015"d;
run;
data want;
  set have;
  sat_date=sub_table_date;
  do while (weekday(sat_date) ne 7);
    sat_date=sat_date-1;
  end;
  format sub_table_date sat_date date9.;
run;
Frequent Contributor
Posts: 96

Re: How to calculate the Saturday date from an existing date?

Thank you very much RW9 and novinosrin. It works well...

##- Please type your reply above this line. Simple formatting, no
attachments. -##
PROC Star
Posts: 551

Re: How to calculate the Saturday date from an existing date?

Like this?

 

data Have;
input customer_id$ sub_table_date:date7.;
format sub_table_date date7.;
datalines;
50095 22-Dec-15
50206 10-Jan-16  	
50220 26-May-16
;

data want;
   set have;
   Saturday_before_dt = intnx('week',sub_table_date,-1, 'end');
   format Saturday_before_dt date7.;
run;
Frequent Contributor
Posts: 96

Re: How to calculate the Saturday date from an existing date?

Thank you Draycut.

##- Please type your reply above this line. Simple formatting, no
attachments. -##
☑ This topic is SOLVED.

Need further help from the community? Please ask a new question.

Discussion stats
  • 5 replies
  • 150 views
  • 0 likes
  • 4 in conversation