Sunday calc

Post Reply
User avatar
Eoeo
Posts: 222
Joined: Mon Jun 04, 2012 12:00 pm

Sunday calc

Post by Eoeo »

How I can calculate how many sundays there are in a month ?
User avatar
sambomb
Posts: 385
Joined: Mon Oct 13, 2008 11:26 am
Location: Itaocara - RJ - Brasil
Contact:

Re: Sunday calc

Post 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

 
Email: SamirSSabreu@gmail.com
MSN: SamirAbreu@hotmail.com
Skype: SamirAbreu
xHarbour 1.1.0 + FwXh 8.02
xHarbour 1.2.1 + Fwhh 10.6
User avatar
nageswaragunupudi
Posts: 8017
Joined: Sun Nov 19, 2006 5:22 am
Location: India
Contact:

Re: Sunday calc

Post 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
Regards

G. N. Rao.
Hyderabad, India
User avatar
Eoeo
Posts: 222
Joined: Mon Jun 04, 2012 12:00 pm

Re: Sunday calc

Post 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 )
User avatar
nageswaragunupudi
Posts: 8017
Joined: Sun Nov 19, 2006 5:22 am
Location: India
Contact:

Re: Sunday calc

Post 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.
Regards

G. N. Rao.
Hyderabad, India
User avatar
Eoeo
Posts: 222
Joined: Mon Jun 04, 2012 12:00 pm

Re: Sunday calc

Post by Eoeo »

thanks
Post Reply