Fluorite | Level 6

## 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
1 ACCEPTED SOLUTION

Accepted Solutions
Diamond | Level 26

## 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;```
5 REPLIES 5
Tourmaline | Level 20

## 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

Diamond | Level 26

## 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;```
Fluorite | Level 6

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

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

attachments. -##
Tourmaline | Level 20

## 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;``````
Fluorite | Level 6

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

Thank you Draycut.