点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
ABAP专家,
有一个特殊要求,下图显示了班级时间表表,班级开始时间(ZAACH1381)和班级结束时间(ZAACH1382)存储在时间戳中,将有两个输入参数:学生加入时间和离开时间(以时间戳格式) 此外,还需要输出学生参加的总时间 (休息时间除外) (以秒为单位)。
PS。 学生可以在休息时间参加,也可以在休息时间离开。
让我们以此为例:
该学生加入20150408084000,然后离开201504081005,因此输出应为:
[20150408100500和20150408084000之间的间隔]-[20150408101000和20150408100500之间的间隔是休息时间]
= 5,100秒-300秒
= 4,800秒
如何实现这种复杂的情况?
百万感谢,
加兰(Galland)
(6.4 kB)
首先,通过阅读
了解时间戳https: //help.sap.com/http.svc/rc/abapdocu_752_index_htm/7.52/zh-CN/index.htm?file=abentime_stamp_oview.htm
在此处找到CL_ABAP_TSTMP,https: //help.sap.com/http.svc/rc/abapdocu_752_index_htm/7.52/zh-CN/index.htm?file=abencl_abap_tstmp.htm
有了这些知识,您应该可以自己轻松地解决该问题。您知道,如果您将示例简化为仅使用日期和日期而不是时间戳记,那么人们会更容易理解。 解决方案的逻辑是相同的-只是不同的数据类型-因此您可以轻松地将其应用于时间戳的实际需求。
很难读取14位数字。 您所写的事实证明:该学生加入20150408084000,然后离开 201504081005 您的上一个时间戳只有12位数字。
请使用更易读的数据类型,用一个简单的示例来评论您的问题。 这样可以使人们更轻松地为您提供帮助,因此您更有可能获得解决方案。
嗨Golland,
这里的实际问题是什么? 如果要减去两个时间戳,则可以使用ABAP类cl_abap_tstmp进行各种时间戳操作。 以下是一个减去值的示例,该差值以秒为单位返回。
嗨Galland Peng,
正如 Matthew Billingham 所述,我只是简单地使用SY-UZEIT而不是时间戳进行解释。 请在下面找到逻辑。 如果需要TIMESTAMP,则相应地转换逻辑。
查找 任何特定的键字段,以确定休息时间和上课时间。
以便您可以获得我希望的解决方案!
一周热门 更多>