CLEAR >FOR iyear = 1999 to 2001 > FOR iMonth = 1 TO 12 > iDaysInMonth = fDaysInMonth2( iYear, iMonth ) > ? DATE( iYear, iMonth, iDaysInMonth ), iDaysInMonth > NEXT iMonth > ? >NEXT iYear >RETURN .T. > >************************************** >FUNCTION fDaysInMonth( iYear, iMonth ) >************************************** > IF iMonth < 12 > dEndOfMOnth = DATE( iYear, iMonth+1, 1 ) -1 > ELSE > dEndOfMOnth = DATE( iYear+1, 1, 1 ) -1 > ENDIF > RETURN DAY( dEndOfMOnth ) > ENDFUNC && fDaysInMonth( iYear, iMonth ) > >*- Or as a one-liner: > >*************************************** >FUNCTION fDaysInMonth2( iYear, iMonth ) >*************************************** > RETURN DAY( IIF( iMonth < 12 ; > , DATE( iYear, iMonth+1, 1 ) -1 ; > , DATE( iYear+1, 1, 1 ) -1 )) > ENDFUNC && fDaysInMonth( iYear, iMonth )