2016-09-06 9 views
1

は、次のコードを考えてみましょう:6 0数値に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    

誰かが、私は(22' :02 '07など)* HMS時刻値に変換することができますどのように、私に教えてくださいすることができます。私は2つのタイムスタンプを比較するためにこれが必要です。

+0

注意あなたがする必要なしに、直接、時間またはタイムスタンプの値を比較することができますそれらを変換する。 –

+0

どのように?ちょうど 'time_stmp1 IFGE time_stmp2'? – Radinator

+2

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 

それとも、後から現在の時間を必要としない場合は、単に直接比較して)%の時間(使用:

C     IF  #TIME1 >= %time() 
関連する問題