'===========================================================================
' Subject: PRINT COUNTRY SPECIFIC DATE        Date: 11-02-96 (16:40)       
'  Author: Egbert Zijlema                     Code: PB                     
'  Origin: E.Zijlema@uni4nn.iaf.nl          Packet: DATETIME.ABC
'===========================================================================
' CTRYDATE.BAS    - prints a date on the screen, using country specific
'                   separator - e.g.: dot in Germany, slash in UK & Japan,
'                   hyphen in USA etc.

' Author          : Egbert Zijlema (E.Zijlema@uni4nn.iaf.nl)
' (up)Date        : November 22, 1996
' Language        : Power Basic 3.2
' Copyright status: Public Domain

' Notification    : Result depends of correct COUNTRY setting
'                   in your CONFIG.SYS file!

' ------------- begin code --------------
DEFINT A - Z

SUB GetCountryInfo(format, seperator$)
  buffer$ = SPACE$(64)                ' information buffer
  REG 8, STRSEG(buffer$)              ' DS = segment of buffer
  REG 4, STRPTR(buffer$)              ' DX = offset of buffer
  REG 1, &H3800                       ' AX = service
  CALL INTERRUPT &H21

  ' after the call buffer$ = filled:
  format = ASC(buffer$)               ' date format (1 out of 3) = 1st byte
  seperator$ = MID$(buffer$, 12, 1)   ' delimiter = 12th byte
END SUB

FUNCTION CountrySpecificDate(InputDate$) AS STRING

  ' InputDate$ as MM-DD-YYYY (= default format)

  IF InputDate$ = "" THEN InputDate$ = DATE$
  MM$ = MID$(InputDate$, 1, 2)
  DD$ = MID$(InputDate$, 4, 2)
  YY$ = MID$(InputDate$, 7)

  GetCountryInfo form, delim$
  SELECT CASE form
    CASE 0
      FUNCTION = InputDate$          ' USA (Basic's default)
    CASE 1
      FUNCTION = DD$ + delim$ + _
                 MM$ + delim$ + YY$  ' EUR
    CASE 2
      FUNCTION = YY$ + delim$ + _
                 MM$ + delim$ + DD$  ' JAP
  END SELECT
END FUNCTION

' demo call
CLS
  PRINT "To-day's date is: "; CountrySpecificDate("")      ' use actual date
END

' ----- end code ------------------------------
