SPSS:如何计算两个时间点之间的持续时间(没有完整的日期信息)

SPSS: How to compute duration between two points of time (without full date information)

在我的一项研究中,参与者给了我他们

  1. 通常去睡觉(就寝时间)并且
  2. 经常起床(outofbed)(格式为hh:mm)。

我现在想计算一个新变量,指示这两个时间点之间的持续时间。

我已经使用了 SPPS 的内置 TimeWizard 和功能 newVar = CTIME.HOURS(outofbed-bedtime)。这不会给我 24.00 之前就寝时间的正确结果(因为例如 23.00-7.00 = 16h,而不是 8h)。

我完全使用了我的 googlefoo 技能,但我找到的所有答案都使用了日期和时间信息(例如 dd:mm:hh:mm)。我预计问题在于 SPSS 在内部将所有日期时间信息保存为自公历开始以来的秒数。由于我缺少日期信息,SPSS 没有可用于计算的绝对值。至少,这是我目前的假设。

我希望你知道我的问题的解决方案。 干杯,德凯

嗯,您可以只计算 24 - CTIME.HOURS(bedtime - outofbed) - 这可以解释为计算清醒时间,然后从 24 小时中减去该时间。

你需要注意那些有不同时间表的人,比如那些上夜班的人。下面的逻辑应该可以解决这个问题,假设那些作息时间倒置的人总是起床晚于入睡。

DATA LIST FREE / outofbed bedtime (2TIME5).
BEGIN DATA
08:00 22:00
06:00 21:00
05:30 20:30
21:45 07:00
END DATA.

DO IF outofbed < bedtime.
  COMPUTE sleepDur = 24 - CTIME.HOURS(bedtime-outofbed).
ELSE.
  COMPUTE sleepDur = CTIME.HOURS(outofbed-bedtime).
END IF.
EXECUTE.