Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
galera, eu to fazendo um contador de dias sem acidentes da CIPA e estou com um probleminha, preciso tirar os feriados e finais de semana do resultado final, pois a empresa trabalha de segunda a sexta apenas.
Eis o código:
<%
data = select_Campo("SELECT data FROM cipa","data",SGBD)
recorde = select_Campo("SELECT recorde FROM cipa","recorde",SGBD)
dias = DateDiff("d",cdate(data),cdate(now))
if len(dias) < 4 then
while not len(dias) = 4
dias = 0 & dias
wend
end if
atual_dia01 = left(dias,1)
atual_dia02 = left(dias,2)
atual_dia02 = right(atual_dia02,1)
atual_dia03 = right(dias,2)
atual_dia03 = left(atual_dia03,1)
atual_dia04 = right(dias,1)
recorde_dia01 = left(recorde,1)
recorde_dia02 = left(recorde,2)
recorde_dia02 = right(recorde_dia02,1)
recorde_dia03 = right(recorde,2)
recorde_dia03 = left(recorde_dia03,1)
recorde_dia04 = right(recorde,1)
%>
<div id="home_cipa">
<div id="home_cipa_titulo">CIPA</div>
<div id="home_cipa_contador">
<div id="home_cipa_contador_frase01">Estamos trabalhando há</div>
<center><div id="home_cipa_contador_contador01"><span class="cipa_numero"><%=atual_dia01%></span><span class="cipa_numero"><%=atual_dia02%></span><span class="cipa_numero"><%=atual_dia03%></span><span class="cipa_numero"><%=atual_dia04%></span> dias</div></center>
<div id="home_cipa_contador_frase02">sem acidentes com afastamento.<br />Nosso recorde é de</div>
<center><div id="home_cipa_contador_contador02"><span class="cipa_numero"><%=recorde_dia01%></span><span class="cipa_numero"><%=recorde_dia02%></span><span class="cipa_numero"><%=recorde_dia03%></span><span class="cipa_numero"><%=recorde_dia04%></span> dias</div></center>
</div>
</div>
<br clear="all" />
Está tudo funcionando certinho, só falta mesmo deixar apenas dias úteis no contador, alguém tem uma luz?
>
feriados acho que você terá que cadastra-los num bd e fazer um select que exclua os feriados, ou se o dia e mes forem iguais ao dia atual, não somar.
Sabados e domingos, se pegar o weekdayname e comparar com a data atual já deve dar para resolver.
Fala Vinicius, antes de mais nada, valeu pela resposta!!
Eu acho que resolve sim, mas tava pensando se de repente não exista alguma referência aos feriados em alguma função, referenciando com o LCID, será que é viagem minha?? hehehehe
De qualquer forma, eu vou fazer isso, pelo menos retirando os finais de semana já vai ficar bem mais próximo do ideal.
Mesmo que não exista nada parecido com o que eu tava tentando fazer, quem precisar já tem de onde partir http://forum.imasters.com.br/public/style_emoticons/default/joia.gif
Acho que infelizmente não tem isso do LCID e feriados, pois é algo que pode variar bastante, por exemplo: 9 de julho é um feriado estadual (SP), o dia da consciencia negra é um "feriado" nacional, mas ainda tem vários lugares que não param por causa dessa data, pois é relativamente recente se comparada a feriados mais "consagrados" como 7 de setembro por exemplo.
Sem falar nos feriados municipais.
>
Acho que infelizmente não tem isso do LCID e feriados, pois é algo que pode variar bastante, por exemplo: 9 de julho é um feriado estadual (SP), o dia da consciencia negra é um "feriado" nacional, mas ainda tem vários lugares que não param por causa dessa data, pois é relativamente recente se comparada a feriados mais "consagrados" como 7 de setembro por exemplo.
Sem falar nos feriados municipais.
É verdade, eu não tinha pensado por esse lado, tinha pensado em considerar apenas os nacionais, mais tudo bem. Valeu pela ajuda!
[]s
De qualquer forma, acho que é uma coisa que outras pessoas podem utilizar, segue o código final excluindo os finais de semana:
<%
SGBD = conecta()
data = select_Campo("SELECT data FROM cipa","data",SGBD)
recorde = select_Campo("SELECT recorde FROM cipa","recorde",SGBD)
data_inicial = data
data_final = date()
dias_uteis = 0
weekend = 0
Function datas(data_inicial,data_final)
diferenca = DateDiff("d",data_inicial,data_final)
dia = Weekday(data_inicial)
For contador = 0 to diferenca
If dia = 1 Then weekend = weekend + 1
If dia = 7 Then weekend = weekend + 1
dia = dia + 1
If dia > 7 Then dia = 1
Next
dias_uteis = diferenca - weekend
End Function
datas data_inicial,data_final
if len(dias_uteis) < 4 then
while not len(dias_uteis) = 4
dias_uteis = 0 & dias_uteis
wend
end if
atual_dia01 = left(dias_uteis,1)
atual_dia02 = left(dias_uteis,2)
atual_dia02 = right(atual_dia02,1)
atual_dia03 = right(dias_uteis,2)
atual_dia03 = left(atual_dia03,1)
atual_dia04 = right(dias_uteis,1)
recorde_dia01 = left(recorde,1)
recorde_dia02 = left(recorde,2)
recorde_dia02 = right(recorde_dia02,1)
recorde_dia03 = right(recorde,2)
recorde_dia03 = left(recorde_dia03,1)
recorde_dia04 = right(recorde,1)
%>
<div id="home_cipa">
<div id="home_cipa_titulo">CIPA</div>
<div id="home_cipa_contador">
<div id="home_cipa_contador_frase01">Estamos trabalhando há</div>
<center><div id="home_cipa_contador_contador01"><span class="cipa_numero"><%=atual_dia01%></span><span class="cipa_numero"><%=atual_dia02%></span><span class="cipa_numero"><%=atual_dia03%></span><span class="cipa_numero"><%=atual_dia04%></span> dias</div></center>
<div id="home_cipa_contador_frase02">sem acidentes com afastamento.<br />Nosso recorde é de</div>
<center><div id="home_cipa_contador_contador02"><span class="cipa_numero"><%=recorde_dia01%></span><span class="cipa_numero"><%=recorde_dia02%></span><span class="cipa_numero"><%=recorde_dia03%></span><span class="cipa_numero"><%=recorde_dia04%></span> dias</div></center>
</div>
</div>
<br clear="all" />
Pode fechar o tópico e passa a régua!! hehehehe
bom dia a todos,
sei que o topico é bem antigo mais to precisando de uma ajuda no meu tranalho.
tenho um script de logon que roda quando os usuarios fazem logon no dominio, e queria incluir um contador de dias da cipa.
essa é a msg que os usuarios visualizam quando fazem logon.
**'Boas Vindas Ao Usuario
Set objUser = WScript.CreateObject("WScript.Network")
wuser=objUser.UserName
If Time <= "12:00:00" Then
MsgBox ("Bom Dia "+Wuser+", você acaba de ingressar na rede corporativa, por favor respeite as políticas de segurança e bom trabalho!")
ElseIf Time >= "12:00:01" And Time <= "18:00:00" Then
MsgBox ("Boa Tarde "+Wuser+", você acaba de ingressar na rede corporativa, por favor respeite as políticas de segurança e bom trabalho!")
Else
MsgBox ("Boa Noite "+wuser+", você acaba de ingressar na rede corporativa, por favor respeite as políticas de segurança e bom trabalho!")
End If**
e queria incluir o contador no espaço em vermelho
**'Boas Vindas Ao Usuario
Set objUser = WScript.CreateObject("WScript.Network")
wuser=objUser.UserName
If Time <= "12:00:00" Then
MsgBox ("Bom Dia "+Wuser+", Estamos a tantos dias sem acidentes. Você acaba de ingressar na rede corporativa, por favor respeite as políticas de segurança e bom trabalho!")
ElseIf Time >= "12:00:01" And Time <= "18:00:00" Then
MsgBox ("Boa Tarde "+Wuser+", Estamos a tantos dias sem acidentes. **Você acaba de ingressar na rede corporativa, por favor respeite as políticas de segurança e bom trabalho!")
Else
MsgBox ("Boa Noite "+wuser+", Estamos a tantos dias sem acidentes. você acaba de ingressar na rede corporativa, por favor respeite as políticas de segurança e bom trabalho!")
End If
qual o erro ele gera ?
e quando for um post muito antigo, aconselho a criar um novo tópico
na verdade quero saber qual o comando botar pra ele mudar os dias sozinho!!
use o dateDiff para subtrair atraves do Now (data atual ), mas dae armazene a última data sem acidente no cookie e depois faça o datediff e exiba
Boa tarde,
Desculpa minha pergunta.
Mais pra isso teria que ter o SQL instalado certo? coisa que não tenho.
Access, SQL server, MySQL qualquer bd, pois vc fará na string SQL
feriados acho que você terá que cadastra-los num bd e fazer um select que exclua os feriados, ou se o dia e mes forem iguais ao dia atual, não somar.
Sabados e domingos, se pegar o weekdayname e comparar com a data atual já deve dar para resolver.