2016-09-06 60 views
1

考慮下面的代碼:ILE RPG - 如何將時間值轉換爲數值?

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數值。我需要這個比較兩個時間戳。

+0

注意,您可以無需直接比較時間或時間戳值轉換它們。 –

+0

如何?只是'time_stmp1 IFGE time_stmp2'? – Radinator

+2

比較兩個時間戳:IF time_stmp1> = time_stmp2 –

回答

5
C     eval  #numeric2 = %dec(TIME1: *hms) 

應該這樣做。

+0

完美!謝謝:D – Radinator

+0

不客氣:-)。請接受答案:D –

+0

http://www.mysamplecode.com/2011/05/rpgle-convert-date-to-numeric-or.html –

1

您可以在TIME操作碼的結果字段中使用Time字段。或者,要獲取當前時間,可以使用%TIME()而不使用參數。

D#TIME1   S    T 
D#curTime   S    T 

C     TIME     #curTime 
C     IF  #TIME1 >= #curTime 

或者,如果你沒有在以後需要當前時間,只需使用%TIME()直接在對比:

C     IF  #TIME1 >= %time()