Calcite | Level 5

## How do i find DOB with start date and age?

Need assistance finding DOB with a start date and age. Also has to include a do loop.

Age is 40.

Start date is February 15, 2001.

My script so far:

data birth;

Age = 40;

Start = '15Feb2001'd;

Bday=Start-Age;

do Age = 1 to 90 until (Start lt '15Feb2001'd);

output;

end;

run;

proc print data=birth;

format Start Bday mmddyy10.;

run;

1 ACCEPTED SOLUTION

Accepted Solutions
Super User

## Re: How do i find DOB with start date and age?

You can tell the year and the month, sort of, but you cannot determine the exact date.

And the solution still doesn't need arrays or loops so, in context of how you originally framed the question, it still doesn't add clarification.

If you want the answer to this question, use INTNX to move the date back by the age.

You can look at the fourth parameter for some alignment options, but really the birthdate can be anything in the range of a year.

dob = intnx('year', date, -40, 'b');

6 REPLIES 6
Super User

## Re: How do i find DOB with start date and age?

@asobs wrote:

Need assistance finding DOB with a start date and age. Also has to include a do loop.

Age is 40.

Start date is February 15, 2001.

My script so far:

data birth;

Age = 40;

Start = '15Feb2001'd;

Bday=Start-Age;

do Age = 1 to 90 until (Start lt '15Feb2001'd);

output;

end;

run;

proc print data=birth;

format Start Bday mmddyy10.;

run;

DOB doesn't change over time...why do you think you need a do loop for that?

Calcite | Level 5

T

Super User

## Re: How do i find DOB with start date and age?

Well...the question as posed doesn't make sense so I'm not sure how we can help you here.

Calcite | Level 5

Super User

## Re: How do i find DOB with start date and age?

You can tell the year and the month, sort of, but you cannot determine the exact date.

And the solution still doesn't need arrays or loops so, in context of how you originally framed the question, it still doesn't add clarification.

If you want the answer to this question, use INTNX to move the date back by the age.

You can look at the fourth parameter for some alignment options, but really the birthdate can be anything in the range of a year.

dob = intnx('year', date, -40, 'b');

Super User

## Re: Re:

Thank you for reminding me why I should never bother with stupid and homework questions.

Discussion stats
• 6 replies
• 1094 views
• 0 likes
• 2 in conversation