SAS中文论坛
标题:
计算一下,一共有多少天? (小趣味题)
[打印本页]
作者:
shiyiming
时间:
2009-12-26 14:57
标题:
计算一下,一共有多少天? (小趣味题)
每年5月最后一个星期一是美国的 Memorial Day , 每年7月4号是美国的独立日.
问题: 在1960年到2000年间,从 Memorial Day 到独立日一共有多少天?
作者:
shiyiming
时间:
2009-12-26 16:11
标题:
Re: 计算一下,一共有多少天? (小趣味题)
建议把题目改成从端午节到中秋节...
CAUTION: 仅在9.2下有效
[code:3uqmnz2p]data _null_;
do year=1960 to 2000;
count+datdif(holiday('memorial',year),holiday('usindependence',year),'act/act');
end;
if year=2001 then put '回答:一共是' count'天。';
run;[/code:3uqmnz2p]
作者:
shiyiming
时间:
2009-12-26 23:21
标题:
Re: 计算一下,一共有多少天? (小趣味题)
可否在SAS9.1版本下写?
还有,我下了个SAS9.2多国版,但安装只能中文版,问一下,能不能调成英文版,及如何调.谢谢!
或,哪里有英文版的SAS9.1/9.2下载?谢谢!
作者:
shiyiming
时间:
2009-12-27 02:35
标题:
Re: 计算一下,一共有多少天? (小趣味题)
What about this?
[code:3awoqy78]data _null_;
do year = 1960 to 2000;
do day = 1 to 31;
date = mdy(5, day, year);
if weekday(date) = 2 then MemorialDay = date;
end;
IndependenceDay = mdy(7, 4, year);
daysBetween = intck('day', MemorialDay, IndependenceDay);
sumDays + daysBetween;
end;
put sumDays 'days in total.';
run;
[/code:3awoqy78]
作者:
shiyiming
时间:
2009-12-27 10:34
标题:
Re: 计算一下,一共有多少天? (小趣味题)
[code:3l2w9lza]data _null_;
do year=1960 to 2000;
date=mdy(7,4,year);
do until(month(date)=5 and weekday(date)=2);
date=date-1;
count+1;
end;
end;
put count;
run;[/code:3l2w9lza]
作者:
shiyiming
时间:
2009-12-27 10:55
标题:
Re: 计算一下,一共有多少天? (小趣味题)
Thanks hopewell! Very smart idea. <!-- s:) --><img src="{SMILIES_PATH}/icon_smile.gif" alt=":)" title="Smile" /><!-- s:) -->
作者:
shiyiming
时间:
2009-12-27 22:28
标题:
Re: 计算一下,一共有多少天? (小趣味题)
借用一下楼上同学们的框架。试着减少嵌套循环
[code:234z7riz]data _null_;
do year=1960 to 2000;
count+(mod(weekday(mdy(5,31,year))+5,7)+34);
end;
put count;
run;[/code:234z7riz]
作者:
shiyiming
时间:
2009-12-28 10:10
标题:
Re: 计算一下,一共有多少天? (小趣味题)
[quote:2xzz5fxh]count+(mod(weekday(mdy(5,31,year))+5,7)+34);[/quote:2xzz5fxh]
var1=mdy(5,31,year): input5月31日的日期值
var2=weekday(var1): 计算5月31日是星期几
var3=mod(var2+5,7): 通过31日是星期几计算周一到31号的天数 <!-- s:shock: --><img src="{SMILIES_PATH}/icon_eek.gif" alt=":shock:" title="Shocked" /><!-- s:shock: --> 这大概就属于江湖中所说的算法了吧
[code:2xzz5fxh] 25日 26日 27日 28日 29日 30日 31日
情况1 3 4 5 6 7 1 ② mod(2+5,7)=0
情况2 4 5 6 7 1 ② 3 mod(3+5,7)=1
情况3 5 6 7 1 ② 3 4 mod(4+5,7)=2
情况4 6 7 1 ② 3 4 5 mod(5+5,7)=3
情况5 7 1 ② 3 4 5 6 mod(6+5,7)=4
情况6 1 ② 3 4 5 6 7 mod(7+5,7)=5
情况7 ② 3 4 5 6 7 1 mod(1+5,7)=6[/code:2xzz5fxh]
var4=var3+34: 34是7月4日到6月1日的天数
作者:
shiyiming
时间:
2009-12-29 09:14
标题:
Re: 计算一下,一共有多少天? (小趣味题)
mod(var2+5,7) 这个是怎么想到的,谁解释下?
作者:
shiyiming
时间:
2009-12-29 11:57
标题:
Re: 计算一下,一共有多少天? (小趣味题)
人的正确思想是从哪里来的?是从天上掉下来的吗?不是。是自己头脑里固有的吗?不是。人的正确思想,只能从社会实践中来,只能从生产斗争、阶级斗争和科学实验这三项实践中来。---毛泽东
作者:
shiyiming
时间:
2009-12-30 03:51
标题:
Re: 计算一下,一共有多少天? (小趣味题)
[quote="ahuige":2lxvg7lf]人的正确思想是从哪里来的?是从天上掉下来的吗?不是。是自己头脑里固有的吗?不是。人的正确思想,只能从社会实践中来,只能从生产斗争、阶级斗争和科学实验这三项实践中来。---毛泽东[/quote:2lxvg7lf]
<!-- s:mrgreen: --><img src="{SMILIES_PATH}/icon_mrgreen.gif" alt=":mrgreen:" title="Mr. Green" /><!-- s:mrgreen: -->
作者:
shiyiming
时间:
2010-1-24 15:40
标题:
Re: 计算一下,一共有多少天? (小趣味题)
[quote="gogotiger":x7w9ye6k]可否在SAS9.1版本下写?
还有,我下了个SAS9.2多国版,但安装只能中文版,问一下,能不能调成英文版,及如何调.谢谢!
或,哪里有英文版的SAS9.1/9.2下载?谢谢![/quote:x7w9ye6k]
SAS文件夹下边有个文件 SASV9.CFG
用记事本打开 你的应该是
-CONFIG "...\SAS 9.1.3\nls\zh\SASV9.CFG"
把zh改成en,去nls文件夹下边看有没有en这一文件夹 有没有sasv9.cfg文件 如果有应该就可以用了
作者:
shiyiming
时间:
2012-7-22 21:51
标题:
Re: 计算一下,一共有多少天? (小趣味题)
Mark
欢迎光临 SAS中文论坛 (http://www.mysas.net/forum/)
Powered by Discuz! X3.2