>>How can I convert the following to non-military time? And yes, before the jokes start, the "13:45" is a value in an array. I can't just retype it to "1:45" instead. Thanks!
>>
>>
>>(RIGHT( "0" + ALLTRIM( "13:45" ), 5 ))
>>
>
>function ConvertToNonMilitary
>lparameters tcTime
>* No parameter checking yet
>local lnHours, lcMins
>
>lnHours = int(val(getwordnum(m.tcTime,1,':')))
>lcMins = getwordnum(m.tcTime,2,':')
>
>do case
> case m.tcTime = '24:00'
> lcConvert = '12:00 AM'
>
> case m.lnHours = 12
> lcConvert = m.tcTime + ' PM'
>
> case between(m.lnHours, 13,23)
> lcConvert = padl(m.lnHours - 12,2,'0') + ':' + m.lcMins + ' PM'
>
> otherwise
> lcConvert = padl(m.lnHours,2,'0') + ':' + m.lcMins + ' AM'
> endcase
>return m.lcConvert
>
>
>From the top of my head, not tested yet
Have you been in the military? First of all, your function does not work with real military time. Military time is NOT expressed as 13:30.... its expressed as 1330 hours. 2400 hours is midnight only and 0001 is 1 minute after midnight. Plugging these values into your function does not return the correct value. If you want it to be capable of handling the ':', you need to do some reworking.