【问题标题】:abas-ERP (FO-Language): Exact time difference between 2 abas datesabas-ERP(FO-Language):2个abas日期之间的精确时差
【发布时间】:2015-11-03 13:49:40
【问题描述】:

是否有任何 FO 原生的可能性来获得两个 abas 日期对象之间的确切差异?

我有一个基于 AJO 的解决方案来比较两个日历对象,但它对于我的用例来说太慢了(它被调用了很多次),我希望有一个本地解决方案。

abas 日期(GD-Fields)可以表示的最高精度是多少?只需几秒钟,或者有没有办法获得 UNIX 时间戳或类似的东西以获得更高的精度。

【问题讨论】:

    标签: erp abas


    【解决方案1】:

    是的,您可以使用 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

    【讨论】:

    • 您知道获得 GP4 类型秒数的可能性吗?还是我必须解析它?
    • 不幸的是你必须解析它。你到底想用“秒”部分做什么?
    • 只是为了输出。在某些情况下,看到 95 秒而不是 1 分 35 秒会更漂亮。但是这种 GP4 类型是一个很好的解决方案,对我有用。谢谢 =)
    • 如果 GP4 类型可以在几秒钟内返回结果,那么转换为不同的输出格式会容易得多。
    • 现在我有一个用例,我需要时差的百分比部分。在这里进行简单的第二次转换也会有所帮助,因为您无法使用 GP4 进行计算(只能进行加法和减法)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多