LISTSERV at the University of Georgia
Menubar Imagemap
Home Browse Manage Request Manuals Register
Previous messageNext messagePrevious in topicNext in topicPrevious by same authorNext by same authorPrevious page (July 2007, week 4)Back to main SAS-L pageJoin or leave SAS-L (or change settings)ReplyPost a new messageSearchProportional fontNon-proportional font
Date:         Mon, 23 Jul 2007 10:23:00 -0500
Reply-To:     "Paul A. Thompson" <paul@WUBIOS.WUSTL.EDU>
Sender:       "SAS(r) Discussion" <SAS-L@LISTSERV.UGA.EDU>
From:         "Paul A. Thompson" <paul@WUBIOS.WUSTL.EDU>
Subject:      Re: Date Calculation
Comments: To: stavenj@GMAIL.COM
In-Reply-To:  <1185203353.045669.312200@w3g2000hsg.googlegroups.com>
Content-Type: text/plain; charset="us-ascii"

The other problem is that you send in the month as a FORMATTED value, not as a date value. SAS does interval calculations on INTERNAL DATE values, not FORMATTED values. Remember, a format is a printing rule.

Paul A. Thompson, Ph.D. Division of Biostatistics, Washington University School of Medicine 660 S. Euclid, St. Louis, MO 63110-1093 314-747-3793 paul@wubios.wustl.edu

-----Original Message----- From: SAS(r) Discussion [mailto:SAS-L@LISTSERV.UGA.EDU] On Behalf Of stavenj@GMAIL.COM Sent: Monday, July 23, 2007 10:09 AM To: SAS-L@LISTSERV.UGA.EDU Subject: Date Calculation

Hello, I'm trying to create macros containing the first date of the month for all months in between certain dates (in the case below, it is a calendar year, but this will not be the case every time). The bold part of the program (macro dates_month)is not working for me; I'm not sure why. I'm not concerned with the actual values at this point, I'm just trying to figure out why macros &Date1 - $Date12 are not being created. Also, if there is a better way to do this (create macros containing the first date of the month for all months in between certain dates), please let me know. Thanks, Joe

%macro date_calc;

data _null_; Start = put(intnx('month',today(),-14),date9.); call symput('Start',"'"||Start||"'d"); run;

data _null_; firstday = intnx('month',today(),-2); End = put((firstday - 1),date9.); call symput('End',"'"||End||"'d"); run;

%mend date_calc; %date_calc;

data _null_; MONTH= INTCK('MONTH',&start,&End+1); call symput('MONTH',(Month)); run;

%put(Start) = &Start; %put(End) = &End; %put(Month) = &Month;

[b]%macro dates_month; %do I = 1 %to 12; data _null_; Date&I = intnx('month',&Start,&I); call symput("Date&I",Date&I); run; %end; %mend; %dates_month;

%put(Date1) = &Date1;[/b]


Back to: Top of message | Previous page | Main SAS-L page