SAS中intck函数计算⽇期天数间隔等妙⽤
⼤家肯定知道⾃⼰⼏岁,度过了多少个季节。那多少⼈知道⾃⼰从出⽣到现在有多少个⽉,多少个周、多少天吗?
SAS可以帮你解决,⽤intck函数,将你的出⽣⽇期和今天的⽇期放在下列函数就OK!可以应⽤到客户的⼊⽹时长等计算中。
1.利⽤intck函数
data a;
format x date9. y date9.;
x='05DEC1985'd;y='18APR2017'd;
year=intck('year',x,y);
qtr=intck('qtr',x,y);
month=intck('month',x,y);
week=intck('week',x,y);
day=intck('day',x,y);
put year= qtr= month= week= day=;
run;
改进优化后:
data aaa;
input birthday mmddyy8.;
format birthday mmddyy8.;
bday=put(birthday,mmddyy8.);
today=put(today(),mmddyy8.);
age=intck('year',birthday,today()); /*会四舍五⼊年龄*/
age1 = floor
((intck('month',birthday,today())
- (day(today()) < day(birthday))) / 12);
cards;
01251956
09021968
02181948
10271999
;
run;
2.利⽤宏
%macro yourdays(birthday=);
data _null_;
file print;
y=today();
x=&birthday;
year=intck('year',x,y);
qtr=intck('qtr',x,y);
month=intck('month',x,y);
week=intck('week',x,y);
day=intck('day',x,y);
稀油站
put "你在这个世界上活了"year"年,"month"⽉," week"星期," day"天。";
run;
%mend;
%yourdays(birthday='08jun1988'd);
改进优化后:
%macro yourdays(birthday=);
ods listing close;
ods html;
data _null_;
file print;
time=time();
y=today();
x=&birthday;
year=Intck('year',x,y);酒店入口设计
煤炭港口qtr=Intck('qtr',x,y);
month=Intck('month',x,y);
week=Intck('week',x,y);
day=Intck('day',x,y);
索爱m600iput 100*'*';
put "现在是"y:yymmdd10."号" time:time5."分。";
形位公差
put;
put "截⽌到⽬前,你在这个世界上活了"year"年," month"个⽉," week"个星期," day"天。"; put;
put "请珍惜你⽣命中的每⼀天!";
put;
put 100*'*';
run;
ods html close;
jstorods listing;
%mend;
/*将以下⽇期改为你的⽣⽇,直接运⾏全部程序*/
%yourdays(birthday='08jun1988'd);