我有一个表格,其中包含日期、唤醒时间和就寝时间作为输入。根据这些数据,我想计算前一天晚上的睡眠时间。您可以在下面看到我想获得的表格示例:
| Date | Waketime | Bedtime | Sleep |
| <2012-09-24 Mon> | 6:00 | 22:00 | |
| <2012-09-25 Tue> | 8:00 | 01:00 | 10:00 |
| <2012-09-26 Wed> | 7:00 | 23:00 | 6:00 |
当我应用表格公式时:#+TBLFM: $4=if((24-$3)<12, (24-$3)+@-1$2, $3+@-1$2);t
这并没有给出想要的结果,因为整数 (24, 12...) 被解释为秒。
错误结果:
| Date | Waketime | Bedtime | Sleep |
| <2012-09-24 Mon> | 6:00 | 22:00 | |
| <2012-09-25 Tue> | 8:00 | 01:00 | 5.01 |
| <2012-09-26 Wed> | 7:00 | 23:00 | -14.99 |
#+TBLFM: $4=if((24-$3)<12, (24-$3)+@-1$2, $3+@-1$2);t
如何调整此公式以返回正确的睡眠时间?
请注意,对于计算睡眠持续时间,我有一个 if 语句,它根据 Bedtime 的值以不同的方式计算睡眠持续时间。如果就寝时间在 12 小时之前,则添加就寝时间和起床时间。如果就寝时间超过 12 小时,则首先将就寝时间减去 24,然后将其添加到唤醒时间