Date SPSS:测试两个日期之间的间隔是否包含第二个间隔

Date SPSS:测试两个日期之间的间隔是否包含第二个间隔,date,intervals,spss,Date,Intervals,Spss,我正在做一个需要使用SPSS的项目。我对R比较满意,但我需要呆在SPSS环境中,我将无法使用R插件 我的问题与财政年度有关,并根据它们引入的额外天数进行调整。例如: * fake data to permit syntax to be run. data list free/number. begin data 1 12 123 1234 12345 end data. * calculate the number of days between the start/end of a fisc

我正在做一个需要使用SPSS的项目。我对R比较满意,但我需要呆在SPSS环境中,我将无法使用R插件

我的问题与财政年度有关,并根据它们引入的额外天数进行调整。例如:

* fake data to permit syntax to be run.
data list free/number.
begin data
1
12
123
1234
12345
end data.

* calculate the number of days between the start/end of a fiscal year.
* this period contains a leap-day that I need to adjust for, but it returns 365.
compute begin1 = date.mdy(10,01,1999).
compute end1   = date.mdy(09,30,2000).
compute diff1  = datediff(end1, begin1, "days").

* this calculation behaves as expected-- producing 29 days.
compute begin2 = date.mdy(02,01,2000).
compute end2   = date.mdy(03,01,2000).
compute diff2  = datediff(end2, begin2, "days").
execute.
为了解决我在
datediff()
中遇到的问题,我计划在闰年期间,如果开始/结束之间的行间隔包含2/28和3/1,则只添加一天。但是,我不确定在SPSS中实现这一点的最佳方法。我检查了一些SPSS列表服务,但没有看到这种类型的测试/计算的解决方案。

datediff()
计算两个日期之间的差异,这意味着开始日期(或结束日期-取决于您如何看待)不包括在计数中。 如果您计算(10,011999)和(10,012000)之间的差值,以及非闰年中预期的365天,例如(10,012000)和(10,012001),您将得到366

在第二个示例(仅计算2月份)中,计算了(02,012000)和(03,012000)之间的差值,得到29天。如果你计算(02,012000)和(02,292000)之间的差额,你将得到28天而不是29天


因此,如果您希望继续计算年初和年末之间的差异,只需在计算中添加1即可。

正如eli-k所说,datediff计算实际日历间隔。它知道闰年的规则,闰年比4整除的年份更复杂