ILE RPG - 如何将时间值转换为数值?
ILE RPG - How to convert a time value to a numeric value?
考虑以下代码:
D#TIME1 S T
D#numeric1 S 6 0
D#numeric2 S 6 0
D
C TIME #numeric1
C eval #TIME1 = %TIME(#numeric1:*HMS)
C
C* This does not work:
C eval #numeric2 = %int(TIME1)
C* Errormessage: The expression contains a operator, which is not defined
C
C MOVE *ON *INLR
有人可以告诉我如何将 *HMS 时间值(如“07:02:22”)转换为 6 0
数值。我需要这个来比较两个时间戳。
C eval #numeric2 = %dec(TIME1: *hms)
应该可以解决问题。
您可以在 TIME 操作码的结果字段中使用时间字段。或者,要获取当前时间,您可以使用不带参数的 %TIME()。
D#TIME1 S T
D#curTime S T
C TIME #curTime
C IF #TIME1 >= #curTime
或者如果以后不需要当前时间,直接在比较中使用%TIME()即可:
C IF #TIME1 >= %time()
考虑以下代码:
D#TIME1 S T
D#numeric1 S 6 0
D#numeric2 S 6 0
D
C TIME #numeric1
C eval #TIME1 = %TIME(#numeric1:*HMS)
C
C* This does not work:
C eval #numeric2 = %int(TIME1)
C* Errormessage: The expression contains a operator, which is not defined
C
C MOVE *ON *INLR
有人可以告诉我如何将 *HMS 时间值(如“07:02:22”)转换为 6 0
数值。我需要这个来比较两个时间戳。
C eval #numeric2 = %dec(TIME1: *hms)
应该可以解决问题。
您可以在 TIME 操作码的结果字段中使用时间字段。或者,要获取当前时间,您可以使用不带参数的 %TIME()。
D#TIME1 S T
D#curTime S T
C TIME #curTime
C IF #TIME1 >= #curTime
或者如果以后不需要当前时间,直接在比较中使用%TIME()即可:
C IF #TIME1 >= %time()