Focal Point
[SOLVED] Convert Alphanumeric to 12-hour time

This topic can be found at:
https://forums.informationbuilders.com/eve/forums/a/tpc/f/7971057331/m/9837019726

January 14, 2013, 07:57 PM
Bob N.
[SOLVED] Convert Alphanumeric to 12-hour time
How would one go about converting a 4-byte alphanumeric field to a 12-hour time? Something along these line: 1600 -> 04:00 pm

Thanks!

This message has been edited. Last edited by: Kerry,


Bob Neubauer
bob@databuilders.com
January 14, 2013, 08:18 PM
Waz
I think you could use HINPUT to do this.


Waz...

Prod:WebFOCUS 7.6.10/8.1.04Upgrade:WebFOCUS 8.2.07OS:LinuxOutputs:HTML, PDF, Excel, PPT
In Focus since 1984
Pity the lost knowledge of an old programmer!

January 14, 2013, 08:25 PM
Waz
TABLE FILE CAR
PRINT COUNTRY
COMPUTE ATIM/A4 = '1600' ;
COMPUTE TIME/HHIA = HINPUT(12,'00000000' | ATIM,8,'HHI') ;
END

January 14, 2013, 08:27 PM
Norb Eckert
Write yourself a little function that you can call from an "include" whenever you want to convert the time. I wrote this one that I use all the time:

  
DEFINE FUNCTION TIMEAMPM(TIMEIN/A6)
-* get the time in a left-padded 6 character string and return character string in
-* the form hh:mm am/pm.  e.g.  Pass '000630' and return '6:30 am'.

-* TIMEIN = string field to parse in '00HHMM' military time format. 

-* get the hour and minutes as a string
HRTEMP/A2 = EDIT(TIMEIN, '$$99');
MINUTE/A2 = EDIT(TIMEIN, '$$$$99');
-* convert the hour into an integer so you can do some math and comparisons
HRTEMP1/I2 = ATODBL(HRTEMP, '02', 'I2');

-* if hr > 12 then (hr - 1) else hr
HOUR/A2 = IF HRTEMP1 GT 12 THEN FPRINT(HRTEMP1 - 12, 'I2', 'A2') ELSE HRTEMP;
-* if hr > 11 then 'pm' else 'am'
AMPM/A2 = IF HRTEMP1 GT 11 THEN 'PM' ELSE 'AM';

-* formats into hh:mm pm/am.  Note this is NOT in military time
TIMEAMPM/A8 = HOUR | ':' | MINUTE | ' ' | AMPM;

END
-RUN



You can tweak it for a 4 character input variable and adding a leading zero to the output if you desire.

Norb


prod:7.6.9, win2k3 mre, caster, bid, devstudio 7.6.9
January 14, 2013, 08:34 PM
Norb Eckert
Holy Moly Waz!!!! Eeker

You smoked me! Although I prefer to do things the hard way I will be looking closely at your solution. Good One


prod:7.6.9, win2k3 mre, caster, bid, devstudio 7.6.9
January 14, 2013, 09:08 PM
Waz
Ah the forgotten date-time functions....
Cool


Waz...

Prod:WebFOCUS 7.6.10/8.1.04Upgrade:WebFOCUS 8.2.07OS:LinuxOutputs:HTML, PDF, Excel, PPT
In Focus since 1984
Pity the lost knowledge of an old programmer!

January 15, 2013, 12:26 PM
Bob N.
Wow! Thank you Norb and Waz...I really appreciate the help.


Bob Neubauer
bob@databuilders.com
January 15, 2013, 03:50 PM
Waz
And don't forget...

Read
The
Functions
Manual

Always a great place to peruse.


Eek Eeker

I need to get a life.


Waz...

Prod:WebFOCUS 7.6.10/8.1.04Upgrade:WebFOCUS 8.2.07OS:LinuxOutputs:HTML, PDF, Excel, PPT
In Focus since 1984
Pity the lost knowledge of an old programmer!

January 15, 2013, 04:02 PM
Norb Eckert
I've seen that acronym before but not defined in this way. Cool

Perhaps the excessive heat down under is starting to take it's toll and you can't recall the correct definition of RTFM. O.k I'll just STFU. Music


prod:7.6.9, win2k3 mre, caster, bid, devstudio 7.6.9
January 15, 2013, 04:10 PM
Waz
Sweating


Waz...

Prod:WebFOCUS 7.6.10/8.1.04Upgrade:WebFOCUS 8.2.07OS:LinuxOutputs:HTML, PDF, Excel, PPT
In Focus since 1984
Pity the lost knowledge of an old programmer!