SAS中的日期和间隔

SAS中的日期和间隔,sas,Sas,如果我有两个日期,例如2005年3月22日至2006年3月1日,并且我希望基于此时间间隔创建季节间隔(春季、夏季、秋季、冬季),那么如何在数据步骤中实现这一点 季节的定义如下: 春季:三月至五月 夏季:6月至8月 秋季:9月至11月 冬季:12月至2月 我需要计算他们在每个季节花费的时间。您需要先将其转换为月份,然后再转换为季节。最近有人问过这个问题,所以通过搜索很容易找到(我假设某门课程将此作为家庭作业?) 你也可以使用一种格式,但因为你刚刚开始,这可能更容易 其他用户的问题看起来非常相似:

如果我有两个日期,例如2005年3月22日至2006年3月1日,并且我希望基于此时间间隔创建季节间隔(春季、夏季、秋季、冬季),那么如何在数据步骤中实现这一点

季节的定义如下: 春季:三月至五月 夏季:6月至8月 秋季:9月至11月 冬季:12月至2月


我需要计算他们在每个季节花费的时间。

您需要先将其转换为月份,然后再转换为季节。最近有人问过这个问题,所以通过搜索很容易找到(我假设某门课程将此作为家庭作业?)

你也可以使用一种格式,但因为你刚刚开始,这可能更容易

其他用户的问题看起来非常相似:

编辑:使用INTCK()计算间隔数。 然后使用INTNX来增加时间间隔并计算天数。 可以通过INTNX()函数的第一个参数来控制日期的对齐方式。您可以查看文档以了解确切的细节

data want;

    start_date="22Mar2005"d;
    end_date="01Mar2006"d;
    num_intervals=intck('quarter', start_date, end_date, 'C') ;

    do interval=0 to num_intervals;
        season_start=intnx('Month3.3', start_date, interval, 'b');
        season_end=intnx('Month3.3', start_date, interval, 'e');
        Number_Days=season_end - season_start + 1;
        output;
    end;
    format start_date end_date season: yymmddd10.;

run;

欢迎来到堆栈溢出!请在此处添加有意义的代码和问题描述。发布一个证明你的问题会帮助你得到更好的答案…意识到我的答案可能不是你想要的。你能澄清一下你有什么和你想要什么吗?谢谢,这很有帮助。我希望能够计算出(以天为单位)每个季节花了多长时间。如果我们假设这个季节从月初开始,一直持续到月底?谢谢
data want;

    start_date="22Mar2005"d;
    end_date="01Mar2006"d;
    num_intervals=intck('quarter', start_date, end_date, 'C') ;

    do interval=0 to num_intervals;
        season_start=intnx('Month3.3', start_date, interval, 'b');
        season_end=intnx('Month3.3', start_date, interval, 'e');
        Number_Days=season_end - season_start + 1;
        output;
    end;
    format start_date end_date season: yymmddd10.;

run;