Jump to content
Fivewin Brasil

qtd de semanas no mês


Luiz Fernando

Recommended Posts

1 hora atrás, Luiz Fernando disse:

Pessoal estou precisando fazer uma rotina, aonde me retorna o numero de sexta-feira que tem naquele mês específico, e seus dias

se alguém tiver alguma rotina para compartilhar

obg

Luiz Fernando

FUNCTION pSema(Dia,Tipo,Acento)
**--------------------------------------**
**  Retornar o dia da semana   *
**  Sintaxe : pSema(arg1,arg,arg3)
**            Arg1 = Data/Variavel
**            Arg2 = 1=dia simples, 0=dia completo (segunda.segunda-feira)
**            Arg3 = 1 remover acentos
**  Exemplo : @ 10,10 SAY pSema(date(),1,1)
**  Retorno : Terca-Feira
**--------------------------------------**
    a=DOW(dia)
    dia=""
    DO CASE
    CASE a = 1
        dia="Domingo"
    CASE a = 2
        dia=IF(Tipo==1,"Segunda","Segunda-Feira")
    CASE a = 3
        dia=IF(Tipo==1,"Terça","Terça-Feira")
    CASE a = 4
        dia=IF(Tipo==1,"Quarta","Quarta-Feira")
    CASE a = 5
        dia=IF(Tipo==1,"Quinta","Quinta-Feira")
    CASE a = 6
        dia=IF(Tipo==1,"Sexta","Sexta-Feira")
    CASE a = 7
        dia="Sabado"
    ENDCASE

    IF(Acento==1)
        dia:=TiraAcento(dia)
    ENDIF
RETURN(dia)

Tente por aqui, faça um loop de 1 a 31 para ver as sextas do mês.
Abraços

Link to comment
Share on other sites

Dear friend, look this:

// http://forums.fivetechsupport.com/viewtopic.php?f=6&t=38029
	   DayOfWeek := STRTRAN( cdow( Date() ), "á", "a"
	   DayOfWeek := STRTRAN( OemToAnsi( cdow(fe ) ), "á", "a" )
	//** "Days in month..:", DaysInMonth( dDate )
//** "Day of year....:", DoY( dDate )
//** "Begin of month.:", BoM( dDate )
//** "End of month...:", EoM( dDate )
//** "Week of month..:", WoM( dDate )
//** "Week of year...:", WoY( dDate )
//** "Begin of year..:", BoY( dDate )
//** "End of year....:", EoY( dDate )
	FUNCTION Fecha( dFecha )
	   LOCAL cLeyenda, aDias, aMeses
	   DEFAULT dFecha := Date()
	   aDias := { "Domingo, ", "Lunes, ", "Martes, ", "Miercoles, ", "Jueves, ", "Viernes, ", "Sabado, " }
   aMeses := { "Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre" }
	   cLeyenda := aDias[ DoW( dFecha ) ] + Str( Day( dFecha ), 2 ) + " de " + aMeses[ Month( dFecha ) ] + ;
      " de " + Str( Year( dFecha ), 4 )
	RETURN cLeyenda
	FUNCTION FechaLet()
	   LOCAL cMes := { 'Enero     ', 'Febrero   ', 'Marzo     ', 'Abril     ', ;
                   'Mayo      ', 'Junio     ', 'Julio     ', 'Agosto    ', ;
                   'Septiembre', 'Octubre   ', 'Noviembre ', 'Diciembre ' }
	   LOCAL cDia     := { 'Domingo', 'Lunes', 'Martes', 'Miércoles', ;
                       'Jueves', 'Viernes', 'Sábado' }
	   LOCAL FechaLet := cDia[ DoW(Date( ) ) ] + ', '       + ;
                     Str( Day( Date( ) ) ) + ' de '     + ;
                     AllTrim( cMes[ Month(Date( ) ) ] ) + ;
          IF( Year( Date() ) > 2000, ' del ', ' de ' )  + ;
              Str( Year( Date( ) ) )
	RETURN FechaLet
	FUNCTION Dias( dDate )
	RETURN cDow( dDate ) + ", " + str( day( dDate ) ) + " de " + cMonth( dDate ) + " del " + str( year( dDate ) )

Regards, saludos.

Link to comment
Share on other sites

Ladinilson vlw obg pela dica, usei um loop aqui de 1 a 31 e deu certo.

function DiaSemana( dData, nLen )

local aDias:={ 'Domingo','Segunda','Terça  ','Quarta ','Quinta ','Sexta  ', 'Sábado ' }
local cDiaSem

DEFAULT nLen:=7
      
cDiaSem:=substr( aDias[dow(dData)], 1, nLen )

return cDiaSem

Kapiaba como deu certo com a dica do Ladinilson, acabei nem testando a sua, que com certeza tb iria dar certo, obg pelo retorno

Abs

 

 

 

 

Link to comment
Share on other sites

5 minutos atrás, Luiz Fernando disse:

Ladinilson vlw obg pela dica, usei um loop aqui de 1 a 31 e deu certo.


function DiaSemana( dData, nLen )

local aDias:={ 'Domingo','Segunda','Terça  ','Quarta ','Quinta ','Sexta  ', 'Sábado ' }
local cDiaSem

DEFAULT nLen:=7
      
cDiaSem:=substr( aDias[dow(dData)], 1, nLen )

return cDiaSem

Kapiaba como deu certo com a dica do Ladinilson, acabei nem testando a sua, que com certeza tb iria dar certo, obg pelo retorno

Abs

 

 

 

 

Não fale isso que ele vai ficar chateado, mesmo porque o time dele perdeu ontem em casa kkkkk

Link to comment
Share on other sites

Amiguinhos,

Conheço um método bem complexo mas deve funcionar:

dData  :=  CTOD("30/10/12")? "Esta data esta na semana: ", WEEK( dData )
	

O Padrão ISO 8601 define que uma semana começa no Domingo, portanto se o dia 1 do mês da consulta cair num sábado este mês possui 6 semanas. Em qualquer outro dia da semana define que o mês tem 5 semanas.

Então você podeusar a função BOM( StringDate ) Begining Of Month ou a função CDOW( CTOD( StringDate ) ) == "Saturday" poderá obter bom resultado.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...