【发布时间】:2015-11-03 13:49:40
【问题描述】:
是否有任何 FO 原生的可能性来获得两个 abas 日期对象之间的确切差异?
我有一个基于 AJO 的解决方案来比较两个日历对象,但它对于我的用例来说太慢了(它被调用了很多次),我希望有一个本地解决方案。
abas 日期(GD-Fields)可以表示的最高精度是多少?只需几秒钟,或者有没有办法获得 UNIX 时间戳或类似的东西以获得更高的精度。
【问题讨论】:
是否有任何 FO 原生的可能性来获得两个 abas 日期对象之间的确切差异?
我有一个基于 AJO 的解决方案来比较两个日历对象,但它对于我的用例来说太慢了(它被调用了很多次),我希望有一个本地解决方案。
abas 日期(GD-Fields)可以表示的最高精度是多少?只需几秒钟,或者有没有办法获得 UNIX 时间戳或类似的东西以获得更高的精度。
【问题讨论】:
是的,您可以使用 GP4 类型。
.type GD19 xdbegin xdend
.type GP4 xgdiff
.formula U|xdbegin = "1.1.2015 00:00:00"
.formula U|xdend = "1.1.2016 00:00:00"
.formula U|xgdiff = U|xdend-U|xdbegin
'U|xgdiff'
输出将是 365D00h00m00s
现在您可以转换它,例如秒:
.type text xtcmd
.type int xisec
.formula U|xtcmd = "formula U|xisec = " + F|regreplace(F|regreplace(F|regreplace(F|regreplace('U|xgdiff', "D", "*24*60*60+"), "h", "*60*60+"), "m", "*60+"), "s", "")
.'U|xtcmd'
据我所知,“秒”是您可以在 FO 中使用的最高精度。 如果你需要更多,你必须使用(正如你已经提到的)UNIX-time-stamps
【讨论】: