home *** CD-ROM | disk | FTP | other *** search
/ Media Share 9 / MEDIASHARE_09.ISO / progmisc / nfsrc21.zip / DAYTOBOW.PRG < prev    next >
Text File  |  1992-09-28  |  2KB  |  82 lines

  1. /*
  2.  * File......: DAYTOBOW.PRG
  3.  * Author....: Jo W. French dba Practical Computing
  4.  * CIS_ID....: 74731,1751
  5.  * Date......: $Date:   28 Sep 1992 00:36:46  $
  6.  * Revision..: $Revision:   1.3  $
  7.  * Log file..: $Logfile:   C:/nanfor/src/daytobow.prv  $
  8.  * 
  9.  * The functions contained herein are the original work of Jo W. French
  10.  * and are placed in the public domain.
  11.  *
  12.  * Modification history:
  13.  * ---------------------
  14.  *
  15.  * $Log:   C:/nanfor/src/daytobow.prv  $
  16.  * 
  17.  *    Rev 1.3   28 Sep 1992 00:36:46   GLENN
  18.  * Jo French clean up.
  19.  * 
  20.  *    Rev 1.2   15 Aug 1991 23:03:16   GLENN
  21.  * Forest Belt proofread/edited/cleaned up doc
  22.  * 
  23.  *    Rev 1.1   14 Jun 1991 19:51:28   GLENN
  24.  * Minor edit to file header
  25.  * 
  26.  *    Rev 1.0   01 Apr 1991 01:01:04   GLENN
  27.  * Nanforum Toolkit
  28.  *
  29.  */
  30.  
  31. /*  $DOC$
  32.  *  $FUNCNAME$
  33.  *     FT_DAYTOBOW()
  34.  *  $CATEGORY$
  35.  *     Date/Time
  36.  *  $ONELINER$
  37.  *     Calculate no. of days between date and beginning of week
  38.  *  $SYNTAX$
  39.  *     FT_DAYTOBOW( [ <dGivenDate> ] ) -> nDays
  40.  *  $ARGUMENTS$
  41.  *     <dGivenDate> is any valid date in any valid date format.
  42.  *     Defaults to current date if not supplied.
  43.  *  $RETURNS$
  44.  *     A positive number of days to beginning of week, range 0 to 6.
  45.  *  $DESCRIPTION$
  46.  *     FT_DAYTOBOW() returns the number of days to the beginning of the
  47.  *     week.  Normally this will be one less than the value that
  48.  *     would be returned by the Clipper function DOW(), unless the
  49.  *     day for the beginning of the week has been changed with
  50.  *     FT_DATECNFG().
  51.  *  $EXAMPLES$
  52.  *     dDate := CTOD( "09/15/90" )
  53.  *
  54.  *     ? DOW( dDate )               // 7
  55.  *     ? CDOW( dDate )              // Saturday
  56.  *     ? FT_DAYTOBOW( dDate )       // 6
  57.  *
  58.  *     // change beginning of week to Friday  (yeah!)
  59.  *     FT_DATECNFG( , 6 )
  60.  *     ? DOW( dDate )               // 7
  61.  *     ? CDOW( dDate )              // Saturday
  62.  *     ? FT_DAYTOBOW( dDate )       // 1
  63.  *  $SEEALSO$
  64.  *     FT_DATECNFG() FT_ACCTWEEK() FT_WEEK()
  65.  *  $END$
  66. */
  67.  
  68. FUNCTION FT_DAYTOBOW( dGivenDate )
  69.  
  70.   LOCAL nRetVal, nDOW_Start
  71.  
  72.   nDOW_Start := FT_DATECNFG()[2]
  73.  
  74.   IF(VALTYPE(dGivenDate) != 'D', dGivenDate := DATE(), )
  75.  
  76.   nRetVal := DOW( dGivenDate ) - nDOW_Start
  77.   IF( nRetVal < 0, nRetVal += 7, )
  78.  
  79. RETURN nRetVal
  80.  
  81.  
  82.