> -----Original Message-----
> From: [EMAIL PROTECTED] [mailto:owner-u2-
> [EMAIL PROTECTED] On Behalf Of George Gallen
> Sent: Tuesday, September 12, 2006 3:16 PM
> To: [email protected]
> Subject: [U2] Time/Date as a single number
>
> OK. what is the ?best? way to store the time/date (to the second) as a
> single
> number
> similar to unix's epoch, although I'm not looking to convert it to unix
> format.
>
> My method is take date()*86400+time()
> idate=int(combo/86400), itime=combo-(idate*86400)
>
> Is there anyway to do this giving less than 10 characters (and stay in
> base
> 10) ?
>
No. You are dealing with a large number to start with, in base 10. You can
either convert to another numerical base or encode the value into ASCII.
This program will cut your string size in half, by using a 2-digit ASCII
char translate. You don't want to use this if you are displaying the fields.
Escape and control sequences may be formed, unless you literally map 00 ->
99 onto specific printable characters.
SUBROUTINE ASCII.XLATE(INBUF,OUTBUF,MODE)
$OPTIONS EXT
!------------
!ENCODE
!------------
IF MODE = 1 THEN
SLEN = LEN(INBUF)
IF MOD(SLEN, 2) THEN INBUF = "0":INBUF
SLEN = LEN(INBUF)
FOR PTR = SLEN-1 TO 1 STEP -2
! GET TWO-BYTE VALUES RIGHT-TO-LEFT
SVAL = INBUF[PTR,2]
! SKIP FIRST 6 ASCII CHARS
SVAL = SVAL + 6
! CONVERT TO ASCII
SCHAR = CHAR(SVAL)
! APPEND TO STRING
OUTBUF = OUTBUF:SCHAR
NEXT PTR
END
!------------
!DECODE
!------------
IF MODE = 2 THEN
SLEN = LEN(INBUF)
FOR PTR = SLEN TO 1 STEP -1
! CONVERT EACH CHARACTER TO A DECIMAL VALUE
! SUBTRACT 6 TO GET ORIGINAL DECIMAL VALUE
SCHAR = INBUF[PTR,1]
SVAL = SEQ(SCHAR)-6
! WRAP WITH ZERO TO ENFORCE DUAL-DIGIT TRANSLATION
SVAL = "00":SVAL
SVAL = SVAL"R%2"
OUTBUF = OUTBUF:SVAL
! FORCE TO NUMERIC, WHICH WILL REMOVE LEADING ZEROS
OUTBUF = OUTBUF + 0
NEXT PTR
END
RETURN
> George Gallen
> Senior Programmer/Analyst
> Accounting/Data Division
> [EMAIL PROTECTED]
> ph:856.848.1000 Ext 220
Glen
-------
u2-users mailing list
[email protected]
To unsubscribe please visit http://listserver.u2ug.org/