Page 1 of 1

Sunday calc

Posted: Tue Sep 18, 2012 5:21 pm
by Eoeo
How I can calculate how many sundays there are in a month ?

Re: Sunday calc

Posted: Tue Sep 18, 2012 5:52 pm
by sambomb

Code: Select all

Function GetSunday( nMonth, nYear )
Local nCont := 0, nSunday := 0, dDayIni := cTod("01/"+StrZero(nMonth,2)+"/"+StrZero(nYear,4))

   While Month(dDayIni+nCont) = nMonth
      If Dow(dDayIni+nCont++) = "Sunday"
         nSunday++
      end
   end

Return nSunday

 

Re: Sunday calc

Posted: Tue Sep 18, 2012 5:57 pm
by nageswaragunupudi

Code: Select all

function Sundays( dDate )

   local x, d := EOM( dDate )

return If( ( x := Day( d ) - 28 ) == 0 .or. dow( d ) > x, 4, 5 )
 
Usage: Sundays( STOD( "20120101" ) ) --> Sundays in Jan 2012
Sundays( Date() ) --> Sundays in Sep 2012

Re: Sunday calc

Posted: Tue Sep 18, 2012 9:37 pm
by Eoeo
Mr Nages Ineed the number of sunday in a month sample

september there are 30 days with 5 sundays

this I need to calculate the work Hour in this month

this run ok ( thanks to all )

Function GetSunday( nMonth, nYear )
Local nCont := 0
Local nSunday := 0
Local dInizio := cTod("01/"+StrZero(nMonth,2)+"/"+StrZero(nYear,4))
nSunday:=Sundays(dInizio)
Return nSunday


function Sundays( dDate )
local x, d := EOM( dDate )
return If( ( x := Day( d ) - 28 ) == 0 .or. dow( d ) > x, 4, 5 )

Re: Sunday calc

Posted: Wed Sep 19, 2012 3:02 am
by nageswaragunupudi

Code: Select all

function GetSundays( nMonth, nYear )

   local x, d := EOM( STOD( Str( nYear, 4 ) + StrZero( nMonth, 2 ) + '01' ) )

return If( ( x := Day( d ) - 28 ) == 0 .or. dow( d ) > x, 4, 5 )
 
CTOD() depends on SET DATE setting. Using STOD is safer.

Re: Sunday calc

Posted: Wed Sep 19, 2012 8:24 am
by Eoeo
thanks