Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Exibir dias do mes corrente em um <select></selec


ANDRE_GUSTAVO

Pergunta

Pessoal, como eu faço com que os dias do mês corrente sejam exibidos em <select></select> de um form dinamicamente nesse formato dd/mm/aaaa.

exemplo: mês de abril que sejam exibidos somente os dias referentes ao mes de abril e assim por diante (de segunda-feira a sexta-feira) os dias referentes aos sabados e domingos não serao exibidos .

agendamento4.jpg

como fazer isso com asp?

desde já agradeço a atenção e ajuda de todos.

Link para o comentário
Compartilhar em outros sites

9 respostass a esta questão

Posts Recomendados

  • 0

A ideia é a seguinte, você identifica qual é o último dia do mês, ou seja: 28, 29, 30 ou 31...

Depois faz um loop de 1 até o último dia e pronto!

Para descobrir o último dia do mês é simples...

você escolhe o mes que deseja, por exemplo abril...

então como seu mês é abril o seu mês de referência será maio... que você sabe que começa em 01/05 então usando datediff você tira 1 dia de 01/05/2009 e você terá o último dia de abril... sacou? 01/05/2009 - 1dia = 30/04/2009

Pronto... agora você sabe que abril tem 30 dias, ou seja, que começa com 1 e vai até 30! agora é so fazer o loop!

sacou a lógica? bom... então agora é mão à obra!

qualquer dúvida poste aqui!

[]'s Rafael Spilki

Link para o comentário
Compartilhar em outros sites

  • 0
A ideia é a seguinte, você identifica qual é o último dia do mês, ou seja: 28, 29, 30 ou 31...

Depois faz um loop de 1 até o último dia e pronto!

Para descobrir o último dia do mês é simples...

você escolhe o mes que deseja, por exemplo abril...

então como seu mês é abril o seu mês de referência será maio... que você sabe que começa em 01/05 então usando datediff você tira 1 dia de 01/05/2009 e você terá o último dia de abril... sacou? 01/05/2009 - 1dia = 30/04/2009

Pronto... agora você sabe que abril tem 30 dias, ou seja, que começa com 1 e vai até 30! agora é so fazer o loop!

sacou a lógica? bom... então agora é mão à obra!

qualquer dúvida poste aqui!

[]'s Rafael Spilki

Olá Rafael, tudo bem com você?

Desde já obrigado por mais uma ajuda sua.

O DateDiff consegui fazer da forma que você me indicou da uma olhada ai, não sei se foi da forma correta, mas a pricinpio funcionaou:

<% 

Dim nDia, nMes, nAno, nDiaSemana 
Dim sDiaSemana, sMes

nDia = day(Date)
nMes = month(Date)
nAno = year(Date)
nDiaSemana = weekday(Date)

select case nDiaSemana
case 1 sDiaSemana = "Domingo"
case 2 sDiaSemana = "Segunda-Feira"
case 3 sDiaSemana = "Terça-Feira"
case 4 sDiaSemana = "Quarta-Feira"
case 5 sDiaSemana = "Quinta-Feira"
case 6 sDiaSemana = "Sexta-Feira"
case 7 sDiaSemana = "Sábado"
end select

select case nMes
case 1 sMes = "01"
case 2 sMes = "02"
case 3 sMes = "03"
case 4 sMes = "04"
case 5 sMes = "04"
case 6 sMes = "06"
case 7 sMes = "07"
case 8 sMes = "08"
case 9 sMes = "09"
case 10 sMes = "10"
case 11 sMes = "11"
case 12 sMes = "12"
end select


%>

<%
if sMes = "01" then
pMes = "02"
end if
if sMes = "02" then
pMes = "03"
end if
if sMes = "03" then
pMes = "04"
end if
if sMes = "04" then
pMes = "05"
end if
if sMes = "05" then
pMes = "06"
end if
if sMes = "06" then
pMes = "07"
end if
if sMes = "07" then
pMes = "08"
end if
if sMes = "08" then
pMes = "09"
end if
if sMes = "09" then
pMes = "10"
end if
if sMes = "10" then
pMes = "11"
end if
if sMes = "11" then
pMes = "12"
end if
if sMes = "12" then
pMes = "01"
end if

ResultDiffDate = "mes: " & DateDiff("d", "01/"&sMes&"", "01/"&pMes&"") 


%>

Agora, como eu faria o loop para retornar os dias do mes ex.: 01/04/2009 - 02/04/2009 - 03/04/2009 .... 30/04/2009.

seria com alguma função especifica ?

Obrigado pela sua atenção.

T+

Editado por ANDRE_GUSTAVO
Link para o comentário
Compartilhar em outros sites

  • 0

Simplesmente um loop...

'coloquei step 1 abaixo apenas para frizar... mas já é padrão o 1, então não é obrigatório o step 1... para contagens regressivas por exemplos poderia se fazer a lógica inversa se colocando o step -1...
i = 1
For i = 1 to ultimodiadomes step 1
response.write i
Next

[]'s Rafael Spilki

Link para o comentário
Compartilhar em outros sites

  • 0
Simplesmente um loop...

'coloquei step 1 abaixo apenas para frizar... mas já é padrão o 1, então não é obrigatório o step 1... para contagens regressivas por exemplos poderia se fazer a lógica inversa se colocando o step -1...
i = 1
For i = 1 to ultimodiadomes step 1
response.write i
Next
[]'s Rafael Spilki
Rafael, beleza pura, ta saindo como planejado, valeu mesmo. So mais 2 coisas, essa questão do step, ficou vago pra mim, não entendi muito bem o porque, se você puder me dar uma esclaressida melhor sobre ele, outra coisa, como eu iria referenciar "i" de modo que não fosse exibdo a data se o dia semana fosse (sabado ou domigo) ? veja como está meu loop
ResultDiffDate =  DateDiff("d", "01/"&sMes&"", "01/"&pMes&"") 

i = 1
For i = 1 to ResultDiffDate step 1
MostraData =  i&"/"&sMes&"/"& nAno& "<br>"

response.write (MostraData)
Next

Valeu mesmo pela ajuda!!!

muito sucesso pra você cara.

Editado por ANDRE_GUSTAVO
Link para o comentário
Compartilhar em outros sites

  • 0
Simplesmente um loop...

'coloquei step 1 abaixo apenas para frizar... mas já é padrão o 1, então não é obrigatório o step 1... para contagens regressivas por exemplos poderia se fazer a lógica inversa se colocando o step -1...
i = 1
For i = 1 to ultimodiadomes step 1
response.write i
Next
[]'s Rafael Spilki
Rafael, beleza pura, ta saindo como planejado, valeu mesmo. So mais 2 coisas, essa questão do step, ficou vago pra mim, não entendi muito bem o porque, se você puder me dar uma esclaressida melhor sobre ele, outra coisa, como eu iria referenciar "i" de modo que não fosse exibdo a data se o dia semana fosse (sabado ou domigo) ? veja como está meu loop
ResultDiffDate =  DateDiff("d", "01/"&sMes&"", "01/"&pMes&"") 

i = 1
For i = 1 to ResultDiffDate step 1
MostraData =  i&"/"&sMes&"/"& nAno& "<br>"

response.write (MostraData)
Next
Valeu mesmo pela ajuda!!! muito sucesso pra você cara.
Estou tentando fazer com que os dias de sabado e domingo não sejam exidos mas não ta dando certo. O que está errado?
<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<% 

Dim nDia, nMes, nAno, nDiaSemana 
Dim sDiaSemana, sMes

nDia = day(Date)
nMes = month(Date)
nAno = year(Date)
nDiaSemana = weekday(Date)

select case nDiaSemana
case 1 sDiaSemana = "Domingo"
case 2 sDiaSemana = "Segunda-Feira"
case 3 sDiaSemana = "Terça-Feira"
case 4 sDiaSemana = "Quarta-Feira"
case 5 sDiaSemana = "Quinta-Feira"
case 6 sDiaSemana = "Sexta-Feira"
case 7 sDiaSemana = "Sábado"
end select

select case nMes
case 1 sMes = "01"
case 2 sMes = "02"
case 3 sMes = "03"
case 4 sMes = "04"
case 5 sMes = "04"
case 6 sMes = "06"
case 7 sMes = "07"
case 8 sMes = "08"
case 9 sMes = "09"
case 10 sMes = "10"
case 11 sMes = "11"
case 12 sMes = "12"
end select


%>



<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
</head>

<body>
<form id="form1" name="form1" method="post" action="">
  <select name="select">
    <option value="-1">Selecione o dia</option>
    <%
if sMes = "01" then
pMes = "02"
end if
if sMes = "02" then
pMes = "03"
end if
if sMes = "03" then
pMes = "04"
end if
if sMes = "04" then
pMes = "05"
end if
if sMes = "05" then
pMes = "06"
end if
if sMes = "06" then
pMes = "07"
end if
if sMes = "07" then
pMes = "08"
end if
if sMes = "08" then
pMes = "09"
end if
if sMes = "09" then
pMes = "10"
end if
if sMes = "10" then
pMes = "11"
end if
if sMes = "11" then
pMes = "12"
end if
if sMes = "12" then
pMes = "01"
end if

if nDiaSemana !="Domingo" and nDiaSemana != "Sábado" then
ResultDiffDate =  DateDiff("d", "01/"&sMes&"", "01/"&pMes&"") 

i = 1


For i = nDia  to ResultDiffDate step 1
MostraData =  i&"/"&sMes&"/"& nAno& "<br>"
end if %>
    <option value="<% = MostraData %>"><% = MostraData %></option>
    <%   Next
    
%>

erro:

Erro de compilação do Microsoft VBScript (0x800A03F9)

'Then' esperado

/STS/site/teste.asp, line 91, column 14

if nDiaSemana !="Domingo" and nDiaSemana != "Sábado" then

-------------^

linha 91 >>>>> if nDiaSemana !="Domingo" and nDiaSemana != "Sábado" then

Link para o comentário
Compartilhar em outros sites

  • 0
if nDiaSemana !="Domingo" and nDiaSemana != "Sábado" then

ResultDiffDate = DateDiff("d", "01/"&sMes&"", "01/"&pMes&"")

1) Essa variavel nDiaSemana está mandando os valores com acentos? E está mandando eles exatamente igual como você escreveu, ou seja, com a primeira em maiúscula?

2) porque esses pontos de exclamação na frente das variáveis? o que eles representam? Acho que você está confundindo sintaxes de asp e JS... Em asp, o sinal de diferente é <> ou seja, maior ou menor que x, significa dizerque só pode ser diferente de x, sacou?

Bom... tentaí e qualquer coisa posta aqui...

Link para o comentário
Compartilhar em outros sites

  • 0
if nDiaSemana !="Domingo" and nDiaSemana != "Sábado" then

ResultDiffDate = DateDiff("d", "01/"&sMes&"", "01/"&pMes&"")

1) Essa variavel nDiaSemana está mandando os valores com acentos? E está mandando eles exatamente igual como você escreveu, ou seja, com a primeira em maiúscula?

2) porque esses pontos de exclamação na frente das variáveis? o que eles representam? Acho que você está confundindo sintaxes de asp e JS... Em asp, o sinal de diferente é <> ou seja, maior ou menor que x, significa dizerque só pode ser diferente de x, sacou?

Bom... tentaí e qualquer coisa posta aqui...

Bom dia Rafael, olha so o erro que ta dando:

Tipo de erro:

Erro de compilação do Microsoft VBScript (0x800A0400)

Instrução esperada

/STS/site/teste.asp, line 98

end if

linha 98 -----> end if %>

<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<% 

Dim nDia, nMes, nAno, nDiaSemana 
Dim sDiaSemana, sMes

nDia = day(Date)
nMes = month(Date)
nAno = year(Date)
nDiaSemana = weekday(Date)

select case nDiaSemana
case 1 sDiaSemana = "Domingo"
case 2 sDiaSemana = "Segunda-Feira"
case 3 sDiaSemana = "Terça-Feira"
case 4 sDiaSemana = "Quarta-Feira"
case 5 sDiaSemana = "Quinta-Feira"
case 6 sDiaSemana = "Sexta-Feira"
case 7 sDiaSemana = "Sábado"
end select

select case nMes
case 1 sMes = "01"
case 2 sMes = "02"
case 3 sMes = "03"
case 4 sMes = "04"
case 5 sMes = "04"
case 6 sMes = "06"
case 7 sMes = "07"
case 8 sMes = "08"
case 9 sMes = "09"
case 10 sMes = "10"
case 11 sMes = "11"
case 12 sMes = "12"
end select


%>



<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
</head>

<body>
<form id="form1" name="form1" method="post" action="">
  <select name="select">
    <option value="-1">Selecione o dia</option>
    <%
if sMes = "01" then
pMes = "02"
end if
if sMes = "02" then
pMes = "03"
end if
if sMes = "03" then
pMes = "04"
end if
if sMes = "04" then
pMes = "05"
end if
if sMes = "05" then
pMes = "06"
end if
if sMes = "06" then
pMes = "07"
end if
if sMes = "07" then
pMes = "08"
end if
if sMes = "08" then
pMes = "09"
end if
if sMes = "09" then
pMes = "10"
end if
if sMes = "10" then
pMes = "11"
end if
if sMes = "11" then
pMes = "12"
end if
if sMes = "12" then
pMes = "01"
end if

if sDiaSemana <> "Domingo" or sDiaSemana <> "Sábado" then
ResultDiffDate =  DateDiff("d", "01/"&sMes&"", "01/"&pMes&"") 

i = 1

For i = nDia  to ResultDiffDate step 1
MostraData =  i&"/"&sMes&"/"& nAno& "<br>"
end if %>
    <option value="<% = MostraData %>"><% = MostraData %></option>
    <%  
    
     Next
    
%>

Link para o comentário
Compartilhar em outros sites

  • 0

é que o ideal seria colocar o end if depois do next... além disso... uma sugestão:

você pode melhorar suas condicionais... por exemplo, ao invés de fazer:

if sMes = "01" then
pMes = "02"
end if
if sMes = "02" then
pMes = "03"
end if
if sMes = "03" then
pMes = "04"
end if
if sMes = "04" then
pMes = "05"
end if
if sMes = "05" then
pMes = "06"
end if
if sMes = "06" then
pMes = "07"
end if
if sMes = "07" then
pMes = "08"
end if
if sMes = "08" then
pMes = "09"
end if
if sMes = "09" then
pMes = "10"
end if
if sMes = "10" then
pMes = "11"
end if
if sMes = "11" then
pMes = "12"
end if
if sMes = "12" then
pMes = "01"
end if
você poderia fazer assim:
if sMes = "01" then
pMes = "02"
elseif sMes = "02" then
pMes = "03"
elseif sMes = "03" then
pMes = "04"
elseif sMes = "04" then
pMes = "05"
elseif sMes = "05" then
pMes = "06"
elseif sMes = "06" then
pMes = "07"
elseif sMes = "07" then
pMes = "08"
elseif sMes = "08" then
pMes = "09"
elseif sMes = "09" then
pMes = "10"
elseif sMes = "10" then
pMes = "11"
elseif sMes = "11" then
pMes = "12"
elseif sMes = "12" then
pMes = "01"
end if

Dessa forma fica mais elegante, não?

Abração

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.


  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...