我对data have;
date = '11Mar2016'd;
DO tenuremonth = 0 to 12;
Emth=INTNX('Month', date, tenuremonth);
Mthstart=Emth-1;
Mthend=INTNX('Month',Emth, 1)-1;
end;
format emth date mth: date9.;
run;
功能提出了疑问:
Mthend
我的问题是:
我知道Mthstart
是一个月的最后一天。但是,我不知道Mthend
和tenuremonth
之间的区别
恩。当Emth
= 1时
01Apr2016
应该等于Mthend
,31Mar2016
等于Mthstart
。
似乎Mthend
与<div id="wheel1">
<p>Running left</p>
</div>
<div id = "wheel2">
<p>Running right</p>
</div>
相同。但是,它们实际上是不同的
任何人都可以解释一下吗?
欣赏。
答案 0 :(得分:2)
首先,您在output
循环内缺少明确的do
语句,以便输出循环的每次迭代。我认为这只是一个错字,因为你在你的问题中引用了tenuremonth = 1的值。
根据您的代码,intnx
功能正如我所料,您可能还没有完全理解它在做什么。
正如@Reeza所提到的,intx
有一个第4(可选)参数,可让您在月份,开始,中间,结束的不同时间返回日期,并与输入日期相同。如果未指定任何内容,则默认为开头。
Mthstart只需要Emth并从中减去1天,所以将返回29FEB2016。
Mthend接受Emth,将其提前1个月,然后减去1天,因此将在2016年3月31日重新开始。
获得月末的简便方法是将end
添加到intnx
,就像这样
Mthend=INTNX('Month',date, tenuremonth, 'end');