QB64.com

QB64 is a modern extended BASIC programming language that retains QBasic/QuickBASIC 4.5 compatibility and compiles native binaries for Windows, Linux, and macOS.

The TIME$ Function returns a STRING representation of the current computer time in a 24 hour format.

Syntax

PRINT “Present time = “; TIME$

Example(s)

A simple clock using DRAW with Turn Angle.


SCREEN 12
DO
  CLS
  t$ = TIME$: h = VAL(t$): m = VAL(MID$(t$, 4, 2)): s = VAL(MID$(t$, 7, 2))
  PRINT t$
  CIRCLE STEP(0, 0), 200, 8
  DRAW "c12ta" + STR$((h MOD 12) * -30) + "nu133"
  DRAW "c14ta" + STR$(m * -6) + "nu200"
  DRAW "c9ta" + STR$(s * -6) + "nu200"
  _DISPLAY
  _LIMIT 1
LOOP UNTIL INKEY$ = CHR$(27) 

Explanation: Note that VAL(TIME$) can just return the hour number 0 to 23 as the read stops at the first colon.

The following Function converts TIME$ to normal 12 hour AM-PM digital clock format.


PRINT TIME$
PRINT Clock$

FUNCTION Clock$
  hour$ = LEFT$(TIME$, 2): H% = VAL(hour$)
  min$ = MID$(TIME$, 3, 3)   
  IF H% >= 12 THEN ampm$ = " PM" ELSE ampm$ = " AM" 
  IF H% > 12 THEN
    IF H% - 12 < 10 THEN hour$ = STR$(H% - 12) ELSE hour$ = LTRIM$(STR$(H% - 12))
  ELSEIF H% = 0 THEN hour$ = "12"          ' midnight hour
  ELSE : IF H% < 10 THEN hour$ = STR$(H%)  ' eliminate leading zeros   
  END IF  
  Clock$ = hour$ + min$ + ampm$
END FUNCTION 


14:13:36
 2:13 PM

Explanation: When hours are less than 10 (but not 0), STR$(H%) alone keeps a space ahead of the hour. For 2 digit hours, LTRIM$ is used to remove that leading space. For the hours of 10 AM to 12 PM, the hour STRING value is passed from LEFT$(TIME$, 2) at the beginning of the function.

See Also