Computing the Date of the First and Last Day in a Month

ID: Q102053

The information in this article applies to:

The following sample code computes the first and last day of a month, given any date within that month:

   *****************************************************************
   * Main Program
   *****************************************************************
   SET TALK OFF
   mdate = {  /  /  }
   @ 5,15 SAY "Enter a date: " GET mdate
   READ
   @ 6,15 SAY "First day of the month: " + DTOC(firstday(mdate))
   @ 7,15 SAY "Last day of the month: " + DTOC(lastday(mdate))
   SET TALK ON

   ******************************************************************
   * This UDF returns the date for the first day of a month,
   * given any date within that month
   *
   * Parameters: currdate - Any date.
   *
   * Variable:   fday     -The date for the first day in the
   *                       month.
   ******************************************************************
   PROCEDURE firstday
   PARAMETERS currdate
   IF TYPE("currdate") <> "D"      && Check for correct input
      RETURN {//}
   ENDIF
   fday = currdate- DAY(currdate) + 1
   RETURN fday

   *********************************************************************
   * This UDF returns the date for the last day of a month,
   * given any date within that month
   *
   * Parameters: currdate - Any date.
   *
   * Variable:   lday     -The date for the last day in the
   *                       month.
   ******************************************************************
   PROCEDURE lastday
   PARAMETERS currdate
   IF TYPE("currdate") <> "D"      && Check for correct input
      RETURN {//}
   ENDIF
   lday= firstday(currdate) +32
   lday= lday- DAY(lday)
   RETURN lday

Additional reference words: FoxDos FoxWin 2.00 2.50 2.50a 2.x KBCategory: kbprg KBSubcategory: FxprgGeneral

Last Reviewed: June 27, 1995