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

Solved
Frequent Contributor
Posts: 96

# 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
Posts: 9,790

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

All Replies
Super User
Posts: 2,037

## 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
Posts: 9,790

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

attachments. -##
PROC Star
Posts: 1,400

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