全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
1581 4
2012-10-24
最近碰到一个比较好玩的日期型数据推理,其中有两列数据分别为日期和对应的星期,要求推算出下一个与年月日中日和星期相同的最近一个一个年份和月份,如:2012年10月24日星期三,求最近下一个还是24日星期三的年份和月份?求高手如何进行编程?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2012-10-24 22:25:13
我觉得,要我编这个程序,就是"无休止的试",即依次计算2012-11-24是否是星期3,否则试2012-12-24是否是星期3,。。。知道找到是星期3的。方法是傻点(所以我成不了高手),但计算机算得快,对此题运算可能比好方法(需要构思很久)慢不了1秒吧。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2012-10-25 10:13:47
嗯,我能想到的也就是这种方法了

data test;
        format date yymmdd10.;
        do i=2012 to 2100;
                do j=1 to 12;
                        date=mdy(j,24,i);
                        weekday=weekday(date);
                        if weekday=4 then output;
                end;
        end;
        keep date weekday;
run;
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2012-10-25 10:19:25
TaskShare 发表于 2012-10-24 22:25
我觉得,要我编这个程序,就是"无休止的试",即依次计算2012-11-24是否是星期3,否则试2012-12-24是否是星期 ...
Zero second.

239  data _null_;
240     i=0;
241     do while(1);
242        i=i+1;
243        date='24oct2012'd;
244        weekday=weekday(date);
245        date1=intnx('month',date,i,'sameday');
246
247        if weekday=weekday(date1)  then do;
248           put @1 i @10 date date9. @21 date1 date9.;
249           stop;
250        end;
251      end;
252  run;

6        24OCT2012  24APR2013
NOTE: DATA statement used (Total process time):
      real time           0.00 seconds
      cpu time            0.00 seconds
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2012-10-25 16:46:04
bobguy 发表于 2012-10-25 10:19
Zero second.

239  data _null_;
是否可以用宏函数来解决这个问题?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群