兄弟,我很抱歉!那天回信后便不能再跟贴或发帖子了,除了在cos name论坛还能发帖子外,邮件也不能回了。
搞了两天,系统重装,目前终于恢复正常。
虽然你已经解决的差不多 现仍然根据回忆将此原定跟贴发出:
首先将本程序存入永久数据库
data a;
input m d;
sumd+d;
cards;
1 31
2 28
3 31
4 30
5 31
6 30
7 31
8 31
9 30
10 31
11 30
12 31
;
data sasuser.wxq168;
set a;run;
调用编程
proc data=sasuser.wxq168;
data a;set sasuser.wxq168;if m^=3 then delete;/*当前月份*/
x=mod(sum((2008-y0)*t,sumd-(d-28+1),6+(2008-y0)/4+1),i);/*2008当前年,28当前日,6表示基年1月1日是星期6,
(2008-y0)/4+1)从2000年每4年在2月润1天*/
proc print;run;
结果 02年3月28日
proc data=sasuser.wxq168;
data a;set sasuser.wxq168;if m^=3 then delete;/*当前月份*/
x=floor(mod(sum((2002-y0)*t,sumd-(d-28+1),6+(2002-y0)/4+1),i));
SAS 系统 2008年03月28日 星期五 下午08时50分57秒 29
Obs y0 t i m d sumd x
1 2000 365 7 3 31 90 4
03年6月5日
proc data=sasuser.wxq168;
data a;set sasuser.wxq168;if m^=6 then delete;/*当前月份*/
x=floor(mod(sum((2003-y0)*t,sumd-(d-5+1),6+(2003-y0)/4+1),i));
SAS 系统 2008年03月28日 星期五 下午08时50分57秒 30
Obs y0 t i m d sumd x
1 2000 365 7 6 30 181 4
08年3月28日
proc data=sasuser.wxq168;
data a;set sasuser.wxq168;if m^=3 then delete;/*当前月份*/
x=floor(mod(sum((2008-y0)*t,sumd-(d-28+1),6+(2008-y0)/4+1),i));/*2008当前年,sumd该年到该日累计天数,
d当月最大天数,28当前日,1基年1号,6表示基年1月1日是星期6,
(2008-y0)/4+1)从2000年每4年在2月润1天*/
proc print;run;
SAS 系统 2008年03月28日 星期五 下午08时50分57秒 31
Obs y0 t i m d sumd x
1 2000 365 7 3 31
