Isso é problema do horário de verão, que muda mais ou menos em outubro.
O que ocorre é que de 01/10/2006 00:00:00 a 10/10/2006 00:00:00 deve haver apenas 6 dias e 23 horas, em vez de 7 dias.
Uma dica é a seguinte: para evitar esses problemas, faça as contas com 01/10/2006 00:00:00 a 10/10/2006 01:00:00 (adicione sempre uma hora no dia final).
Dessa maneira, vai haver 7 dias.
Mesmo que você não tenha a transição do horário de verão (por exemplo, em junho não há horário de verão), você vai ter algo como 7 dias e uma hora, que pode ser desprezada.
maquiavelbona
Ops, dias da semana.
Sorry.
Felipe_de_Menes_e_Mo
Boa essa hein Thingol. Nao tinha pensado nisso do horário de verão.
S
saga_fuel
Glera eu estou passando duas datas…
a inicial
Thu Oct 05 00:00:00 BRT 2006
e a final
Tue Oct 10 00:00:00 BRST 2006
oq é esse BRST E BRT e como eu faço pra eles ficarem igual??
T
thingol
thingol:
Isso é problema do horário de verão, que muda mais ou menos em outubro.
O que ocorre é que de 01/10/2006 00:00:00 a 10/10/2006 00:00:00 deve haver apenas 6 dias e 23 horas, em vez de 7 dias.
Aham, falha nossa - é óbvio que a resposta certa é 9 (10 - 1), não 7. Quem está pensando em octal aqui?
S
saga_fuel
sim…mais como eu corrigo…para enviar a data ja certa para função ???
e não com esses brst
Felipe_de_Menes_e_Mo
thingol:
thingol:
Isso é problema do horário de verão, que muda mais ou menos em outubro.
O que ocorre é que de 01/10/2006 00:00:00 a 10/10/2006 00:00:00 deve haver apenas 6 dias e 23 horas, em vez de 7 dias.
Aham, falha nossa - é óbvio que a resposta certa é 9 (10 - 1), não 7. Quem está pensando em octal aqui?
Desculpe mas a confusão persiste. A resposta certa seria 10 se não fossem excluídos os sábados e domingos. Mas a estrutura condicional do código citado faz essa exclusão. Assim, a resposta certa evidentemente é 7.
BRST é Brazil Summer Time enquanto BRT é Brazil Time. Eles não ficarão iguais. O dia 1 eh horário normal, o dia 10 é horário de verão. Assim, a solução seria que vc adicionasse uma hora sempre ao horário final, como já foi dito. O que está acontecendo é que vc está passando um intervalo de 6 dias e 23 horas, e não 7 dias. Lembre-se do horário de verão.
T
thingol
Hum, tinha esquecido dos sábados e domingos. (É por isso que tinha achado que ele estava usando um método “força bruta” demais.) E os feriados?
S
saga_fuel
Galera alterei para
adicionei a seguinte linha “calfim.add(Calendar.HOUR , 1);”
MAIS NÃO FUNCIONA…não aguento mais isso EHhuehuEHEHHUE
quanto aos feriados, eu tenho uma tabela de feriados que usuario cadastra conf. sua regiao, e dou um select between nela. Foi a unica solução eheheheh
adicionei a seguinte linha “calfim.add(Calendar.HOUR , 1);”
MAIS NÃO FUNCIONA…não aguento mais isso EHhuehuEHEHHUE
quanto aos feriados, eu tenho uma tabela de feriados que usuario cadastra conf. sua regiao, e dou um select between nela. Foi a unica solução eheheheh
O que quer dizer não funciona? Continua retornando 6 dias? Tente adicionar mais de uma hora.
S
saga_fuel
ehhehehehe tb não funcionou…coloquei 3 dias…
eu acho que o problema esta no looping …eheheh ta complicado…
muito estranho…
S
saga_fuel
HUEHuheHUEHhuehuEHhuehuEHe
GALERA FUNCIONOU!!!
tive que fazer isso…eu só não entendi o pq mais funcionou
VLWSSSSSSSSS…SE ALGUEm puder explica ai pq assim funcionou
ABRAÇOSSSSSSS
Felipe_de_Menes_e_Mo
saga_fuel:
HUEHuheHUEHhuehuEHhuehuEHe
GALERA FUNCIONOU!!!
tive que fazer isso…eu só não entendi o pq mais funcionou
VLWSSSSSSSSS…SE ALGUEm puder explica ai pq assim funcionou
ABRAÇOSSSSSSS
Tenta colocar apenas uma hora no calendário inicial? Funciona? Se funcionar o fato é que akela uma hora acrescida no calendário final não faz diferença. Afinal o dia 10/10/2006 00:00:00 + uma hora resulta em: 10/10/2006 01:00:00. Isto é um acréscimo num dia que já eh horário de verão, logo, nao faria diferença;
Porém a hora acrescida ao dia 1/10/2006 00:00:00 resulta em: 1/10/2006 01:00:00 que será assim até o decréscimo de uma hora que ocorre neste intervalo. Este acrescimo de uma hora anula o decréscimo de uma hora do harário de verão, que começa algum dia deste intervalo. Esta hora portanto resultará em um intervalo de 7 dias e 0 horas, e não mais de 6 dias e 23 horas. Compreende?
S
saga_fuel
fiz isso ja…
mais não funcionou…não sei se eu to comendo bola…
ñão sei oq é…
hehehe
T
thingol
Isto é chamado “programação genética”, ou mais caridosamente, “programação por tentativa e erro”.
S
saga_fuel
GALERAAAAAAA VLWSSS A AJUDA DE TODO MUNDO …
MUITO OBRIGADO…
ACHO Q NÃO IA DESCOBRIR QUE ERA ESSE O PROBLEMA O HORARIO DE VERAO…