home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 5 / 05.iso / a / a075 / 1.img / TOOLKIT1.EXE / SST157.PRG < prev    next >
Encoding:
Text File  |  1989-08-08  |  1.8 KB  |  63 lines

  1. ********************
  2.  
  3. FUNCTION Fox_date
  4.  
  5.    PARAMETERS _gddate, _gdrow, _gdcol
  6.  
  7.    IF PCOUNT() = 1
  8.       _gdrow = ROW()
  9.       _gdcol = COL()
  10.    ENDIF
  11.  
  12.    PRIVATE _gdlevel, _dummy, _gd1, _gd2, _gd3
  13.    
  14.    _gdlevel = 2
  15.  
  16.    SET CURSOR OFF
  17.    DO WHILE .T.
  18.       @ _gdrow, _gdcol GET _gddate
  19.       CLEAR GETS
  20.       _dummy = INKEY(0)
  21.       DO CASE
  22.       CASE _dummy = 13 .OR. _dummy = 27 .OR. _dummy = 23 .OR. _dummy = 3
  23.          EXIT
  24.       CASE CHR(_dummy) $ "Mm"
  25.          _gdlevel = 1
  26.       CASE CHR(_dummy) $ "Dd"
  27.          _gdlevel = 2
  28.       CASE CHR(_dummy) $ "Yy"
  29.          _gdlevel = 3
  30.       CASE CHR(_dummy) $ "+-"
  31.          _gd1 = MONTH(_gddate)
  32.          _gd2 = DAY(_gddate)
  33.          _gd3 = YEAR(_gddate)
  34.          DO CASE
  35.          CASE _gdlevel = 1
  36.             _gd1 = _gd1 + IF(CHR(_dummy) = "+", 1, -1)
  37.             _gd1 = IF(_gd1 < 1, 12, IF(_gd1 > 12, 1, _gd1))
  38.             IF EMPTY(CTOD(STR(_gd1) + "/" + STR(_gd2) + "/" + SUBSTR(STR(_gd3), 3)))
  39.                _gd2 = 1
  40.             ENDIF
  41.          CASE _gdlevel = 2
  42.             _gd2 = _gd2 + IF(CHR(_dummy) = "+", 1, -1)
  43.             IF _gd2 < 1                          && Go to top of day for month
  44.                _gd2 = EOM(_gd1, _gd3)
  45.             ELSE
  46.                IF _gd2 > 27                      && Check to see if good date in month's range
  47.                   IF EMPTY(CTOD(STR(_gd1) + "/" + STR(_gd2) + "/" + SUBSTR(STR(_gd3), 3)))
  48.                      _gd2 = 1
  49.                   ENDIF
  50.                ENDIF
  51.             ENDIF
  52.          OTHERWISE
  53.             _gd3 = _gd3 + IF(CHR(_dummy) = "+", 1, -1)
  54.          ENDCASE
  55.          _gddate = CTOD(STR(_gd1) + "/" + STR(_gd2) + "/" + SUBSTR(STR(_gd3), 3))
  56.          
  57.       ENDCASE
  58.    ENDDO
  59.    SET CURSOR ON
  60.    RETURN(_gddate)
  61.  
  62. * End of File
  63.