|
Richard, here is an example in RPG-Free on V5R2. I'm not sure if it runs on earlier releases. The timestamps $StrTmStmp and $EndTmStmp hold the start and end time. The result is the DS $TimDiff, which holds the difference with hours, minutes and seconds. Hope this is what you are looking for. D DS D $StrTmStmp Z Inz D #StrDate D Overlay($StrTmStmp:1) D #StrTime T Overlay($StrTmStmp:12) D DS D $EndTmStmp Z Inz D #EndDate D Overlay($EndTmStmp:1) D #EndTime T Overlay($EndTmStmp:12) D #Diff 10I 0 D $TimDiff DS D #DiffHours 7S 0 D #DiffMinutes 2S 0 D #DiffSeconds 2S 0 // Calculate time difference between start- and end date/time. // Result fields are contained in DS $TimDiff #EndDate=%date(20031011:*iso); #EndTime=%time(060000:*iso); #StrDate=%date(20031008:*iso); #StrTime=%time(000000:*iso); #Diff = %diff($EndTmStmp:$StrTmStmp:*seconds); #DiffHours = #Diff/3600; #DiffMinutes = (#Diff - #DiffHours * 3600) / 60; #DiffSeconds = #Diff - #DiffHours * 3600 - #DiffMinutes * 60; Regards, GEFIS Gesellschaft für Individual-Software mbH Werner Noll -----Ursprüngliche Nachricht----- Von: Richard B Baird [mailto:rbaird@xxxxxxxxxxxxxxxxxxxxx] Gesendet: Mittwoch, 26. Februar 2003 15:46 An: rpg400-l@xxxxxxxxxxxx Betreff: calculate the difference between two time stamps in hh:mm:ss good morning all, I've searched the archives, but didn't find much help - I'm trying get hh:mm:ss from the difference between two timestamp fields for displaying in user readable format on a dspf. Is there a way to do this without having to manually calculate hours and minutes from seconds? - in other words, why can't I just subtract one time stamp from another giving a time (t) data type? I've tried several ways, but I'm coming up with incompatable types and can't get it to compile. Am I missing something? a bif i haven't seen yet? Here is what I've tried so far: D $StrTime S z D $NewTime S z D $WrkElapse S t * (F1Elapse is 6S 0 dspf field) ---try number 1------ ..... C time $StrTime ..... C time $NewTime C eval $WrkElapse = $NewTime - $StrTime C *hms move $WrkElapse F1Elapse ---try number 2------ ..... C time $StrTime ..... C time $NewTime C eval $WrkElapse = C %diff($StrTime:$NewTime:*seconds) C *hms move $WrkElapse F1Elapse --------- thanks, Rick _______________________________________________ This is the RPG programming on the AS400 / iSeries (RPG400-L) mailing list To post a message email: RPG400-L@xxxxxxxxxxxx To subscribe, unsubscribe, or change list options, visit: http://lists.midrange.com/mailman/listinfo/rpg400-l or email: RPG400-L-request@xxxxxxxxxxxx Before posting, please take a moment to review the archives at http://archive.midrange.com/rpg400-l.
As an Amazon Associate we earn from qualifying purchases.
This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].
Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.