Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Pessoal, estou tentando fazer um script que mostre a estação do ano atual no wikipedia diz o seguinte
Dia 21 de dezembro - Início do verãoDia 21 de março - Início do outono
Dia 21 de junho - Início do inverno
Dia 21 de setembro - Início da primavera
Sendo assim
Verão - começa 21/12 termina 21/03
Outono - começa 21/03 termina 21/06
Inverno - começa 21/06 termina 21/09
Primavera - começa 21/09 termina 21/12
Desta forma estou tenando montar um uma função em asp que mostre a estação do ano de acordo com a data especificada, montei o seguinte...
Function Estacao(vData)
d = day(vData)
m = month(vData)
if d>21 and m=12 or d<21 and m=03 then Estacao = "Verão"
if d>21 and m=03 or d<21 and m=06 then Estacao = "Outono"
if d>21 and m=06 or d<21 and m=09 then Estacao = "Inverno"
if d>21 and m=09 or d<21 and m=12 then Estacao = "Primavera"
Response.Write Estacao
End function
E chamo da seguinte maneira
<% Estacao(date()) %>
Massssss não ta indo, não exibe nenhum valor, tenho certeza que o erro esta na montagem, porém não to encontrando aonde estou falhando.
Se alguém puder me da um help!
Valew.
Pois é, tb não to conseguindo fazer isso rsrsrs pela lógica era pra funcionar, mas não ta.
Se alguém souber o que pode esta errado eu agradeço.
eu tenho uma parecida por aqui, utilizando SELECT CASE, encontrando posto aqui.
Fui obrigado a criar alguns ifs a mais rsrsrs mas agora ta indo
Function Estacao(vData)
d = day(vData)
m = month(vData)
'verão
if d>=01 and m=01 or d=<31 and m=01 then estacao = "Verão"
if d>=01 and m=02 or d=<31 and m=02 then estacao = "Verão"
if d>=01 and m=03 or d=<21 and m=03 then estacao = "Verão"
if d>=21 and m=12 or d=<31 and m=12 then estacao = "Verão"
'outono
if d>=22 and m=03 or d=<31 and m=03 then estacao = "Outono"
if d>=01 and m=04 or d=<31 and m=04 then estacao = "Outono"
if d>=01 and m=05 or d=<31 and m=05 then estacao = "Outono"
if d>=01 and m=06 or d=<21 and m=06 then estacao = "Outono"
'inverno
if d>=22 and m=06 or d=<31 and m=06 then estacao = "Inverno"
if d>=01 and m=07 or d=<31 and m=07 then estacao = "Inverno"
if d>=01 and m=08 or d=<31 and m=08 then estacao = "Inverno"
if d>=01 and m=09 or d=<21 and m=09 then estacao = "Inverno"
'primavera
if d>=22 and m=09 or d=<31 and m=09 then estacao = "Primavera"
if d>=01 and m=10 or d=<31 and m=10 then estacao = "Primavera"
if d>=01 and m=11 or d=<31 and m=11 then estacao = "Primavera"
if d>=01 and m=12 or d=<21 and m=12 then estacao = "Primavera"
Response.Write estacao
End function
Para Chamar...
<% Function Estacao(date()) %>
flw.
Ficou bem mais longo do que imaginei, vou testar depois ;)
Ficou enorme mesmo
Usando CASE certamente ficaria melhor até em desempenho mas ainda assim ficaria longo
Creio que de para usar funções de data mesmo para verificar intervalos depois se der farei uns testei
Consegui diminuir
Function Estacao(vData)
d = day(vData)
m = month(vData)
if d>=01 and m=01 or d=<21 and m=03 then estacao = "Verão"
if d>=22 and m=03 or d=<21 and m=06 then estacao = "Outono"
if d>=22 and m=06 or d=<21 and m=09 then estacao = "Inverno"
if d>=22 and m=09 or d=<21 and m=12 then estacao = "Primavera"
if d>=21 and m=12 or d=<31 and m=12 then estacao = "Verão"
Response.Write estacao
End function
Em relação ao select case, sei não, não posso afirmar pois não o uso muito, porém não acredito que com ele pudesse ficar menor não, mais fico no aguardo.
Até.
em relação ao numero de linhas mesmo sendo um pouco maior o case daria mais desempenho pois já vai para o trecho correto enquanto que com ifs tudo é testado
Pode ser que sim, mas não to entendendo como isso poderia ser feito pelo case, mas fico no aguardo caso alguém que entenda de case possa fazer um exemplo simples, to procurando na net a respeito do uso do case, mais não conseguindo encontrar uma lógica para aplicar nesse caso.
Mudei algumas coisinhas, e agora exibe alguma coisa:
Function Estacao()
d = day(vData)
m = month(vData)
if d>21 and m=12 or d<21 and m=03 then
Estacao = "Verão"
end if
if d>21 and m=03 or d<21 and m=06 then
Estacao = "Outono"
end if
if d>21 and m=06 or d<21 and m=09 then
Estacao = "Inverno"
end if
if d>21 and m=09 or d<21 and m=12 then
Estacao = "Primavera"
end if
End function
Response.write Date() &"<br>"
Response.Write Estacao
Mas só exibe verão, algo na comparação está falhando, testei aqui algumas possibilidades, mas falhei na lógica.