data a;
jan=intnx('month',01,0,'e');
feb=intnx('month',02,0,'e');
mar=intnx('month',03,0,'e');
apr=intnx('month',04,0,'e');
may=intnx('month',05,0,'e');
jun=intnx('month',06,0,'e');
jul=intnx('month',07,0,'e');
aug=intnx('month',08,0,'e');
sep=intnx('month',09,0,'e');
oct=intnx('month',10,0,'e');
nov=intnx('month',11,0,'e');
dec=intnx('month',12,0,'e');
run;
How to count number of days each month wise
Regards,
anand
data a;
do dt='01jan2019'd by 0 until (dt ge '31dec2019'd);
dt=intnx('month', dt, 0, 'e');
days=day(dt);
output;
dt=dt+1;
end;
format dt monname.;
run;
data a;
do dt='01jan2019'd by 0 until (dt ge '31dec2019'd);
dt=intnx('month', dt, 0, 'e');
days=day(dt);
output;
dt=dt+1;
end;
format dt monname.;
run;
Hi draycut
Code is running to long
But not correct output
My code should not take too long. No data is being read, only 12 rows created.
For me to replicate the "correct" output, please post exactly what the correct output is.
@BrahmanandaRao wrote:
Hi draycut
Code is running to long
Can't be, @PeterClemmensen 's code takes just one hundredth of a second:
73 data a; 74 do dt='01jan2019'd by 0 until (dt ge '31dec2019'd); 75 dt=intnx('month', dt, 0, 'e'); 76 days=day(dt); 77 output; 78 dt=dt+1; 79 end; 80 format dt monname.; 81 run; NOTE: The data set WORK.A has 12 observations and 2 variables. NOTE: Verwendet wurde: DATA statement - (Gesamtverarbeitungszeit): real time 0.01 seconds cpu time 0.00 seconds
and the result looks fine to me:
Beob. dt days 1 January 31 2 February 28 3 March 31 4 April 30 5 May 31 6 June 30 7 July 31 8 August 31 9 September 30 10 October 31 11 November 30 12 December 31
Hi Draycut
Just i reopen my sas application and check your solution
it's perfect output
Thank You for your support
Regards,
Anand
do you mean something like this:
data a;
first_period = '1jan2018'd;
drop first_period;
array Months jan feb mar apr may jun jul aug sep oct nov dec;
do over Months;
Months = day(intnx('month',first_period, _i_-1, 'e'));
end;
run;
or a bit more general:
data first_period;
format first_period yymmdd10.;
first_period = '1jan2013'd; output;
first_period = '2feb2014'd; output;
first_period = '3mar2015'd; output;
first_period = '4apr2016'd; output;
first_period = '5may2017'd; output;
first_period = '6jun2018'd; output;
first_period = '7jul2019'd; output;
first_period = '8aug2020'd; output;
first_period = '9sep2021'd; output;
first_period = '10oct2022'd; output;
first_period = '11nov2023'd; output;
first_period = '12dec2024'd; output;
run;
data a;
set first_period;
array Months jan feb mar apr may jun jul aug sep oct nov dec;
do over Months;
Months = day(intnx('month',first_period, _i_-month(first_period), 'e'));
end;
run;
All the best
Bart
SAS Innovate 2025 is scheduled for May 6-9 in Orlando, FL. Sign up to be first to learn about the agenda and registration!
Learn how use the CAT functions in SAS to join values from multiple variables into a single value.
Find more tutorials on the SAS Users YouTube channel.
Ready to level-up your skills? Choose your own adventure.