Problema ano 2010
Moderador: Moderadores
Problema ano 2010
Boa tarde pessoal.
Estou com um problema no meu sistema de crediario, quando gero as parcelas com vencimento em 2010 o sistema esta reconhecendo como 1910.
Resolvi de imediato usando o SET EPOCH TO 1920, mas a cada 10 anos terei que alterar isso?
Voces sabem alguma outra forma que posso fazer isso?
Obrigada.
Darc
Estou com um problema no meu sistema de crediario, quando gero as parcelas com vencimento em 2010 o sistema esta reconhecendo como 1910.
Resolvi de imediato usando o SET EPOCH TO 1920, mas a cada 10 anos terei que alterar isso?
Voces sabem alguma outra forma que posso fazer isso?
Obrigada.
Darc
- alaminojunior
- Colaborador

- Mensagens: 1717
- Registrado em: 16 Dez 2005 21:26
- Localização: Ubatuba - SP
Re: Problema ano 2010
Você pode solucionar usando
e as datas no formato dd/mm/yyyy
Código: Selecionar todos
Set Century OnCompilador xHarbour 1.2.3 + Embarcadero C++ 7.30
MySQL c/ SQLRDD
HwGui + GTWVG
MySQL c/ SQLRDD
HwGui + GTWVG
- Toledo
- Administrador

- Mensagens: 3133
- Registrado em: 22 Jul 2003 18:39
- Localização: Araçatuba - SP
- Contato:
Re: Problema ano 2010
Olá Darc, você pode fazer o seguinte:
SET EPOCH TO (YEAR(DATE())-89)
Abraços,
SET EPOCH TO (YEAR(DATE())-89)
Abraços,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
- Pablo César
- Usuário Nível 7

- Mensagens: 5312
- Registrado em: 31 Mai 2006 10:22
- Localização: Curitiba - Paraná
Problema ano 2010
Não creio que essa seja a solução, apesar de que eu pensei em algo parecido. Testei com o seguinte código e não deu certo:
Acho que o colega deveria adota SEMPRE a data com quatro dígitos para o ANO, como ja disse o colega Alamino. Que daí nunca terá problemas, para isso o SET CENTURY deve estar ON. Do contrário cada data teria que ser tratada pelo dois ultimo dígitos, isto é se o valor for menor que o ano atual do computador, considere o set epoch do século anterior, caso contrário considere o do atual.
Código: Selecionar todos
SET DATE TO BRITISH
SET CENTURY ON
SET EPOCH TO (YEAR(DATE())-89) // setou para 1930
? DATE() // com a data do computador mudada para 01/12/2019
? CTOD("01/12/02") // o resultado foi: 01/12/2002
? CTOD("01/12/62") // o resultado foi: 01/12/1962 (o que estaria errado por causa da data do computador)Um clip-abraço !
Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
- alaminojunior
- Colaborador

- Mensagens: 1717
- Registrado em: 16 Dez 2005 21:26
- Localização: Ubatuba - SP
Re: Problema ano 2010
Pois é. Daí talvez tenha problemas só na virada do ano 9999. :%Pablo César escreveu:Acho que o colega deveria adota SEMPRE a data com quatro dígitos para o ANO, como ja disse o colega Alamino. Que daí nunca terá problemas, para isso o SET CENTURY deve estar ON.
Compilador xHarbour 1.2.3 + Embarcadero C++ 7.30
MySQL c/ SQLRDD
HwGui + GTWVG
MySQL c/ SQLRDD
HwGui + GTWVG
- Pablo César
- Usuário Nível 7

- Mensagens: 5312
- Registrado em: 31 Mai 2006 10:22
- Localização: Curitiba - Paraná
Problema ano 2010
Talvez para resolver datas impossíveis ao usuário digitar erradamente, usar o SET CENTURY + tratamento de datas.
Um clip-abraço !
Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Re: Problema ano 2010
Acho que seria mais prático primeiro perguntar à colega COMO ela gera essas parcelas (seria bom já postar o código que usa). Aí ficaria mais fácil dar uma resposta mais precisa. Pode ser que nenhuma das dicas dadas sirva para o caso dela.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.
---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.
---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
- Toledo
- Administrador

- Mensagens: 3133
- Registrado em: 22 Jul 2003 18:39
- Localização: Araçatuba - SP
- Contato:
Re: Problema ano 2010
Pablo, não achei erro algum no teste que você fez... pra mim está tudo certo!Pablo César escreveu:Não creio que essa seja a solução, apesar de que eu pensei em algo parecido. Testei com o seguinte código e não deu certo:
Veja bem, o comando SET EPOCH TO 1930 vai determinar que as datas com ano (com 2 dígitos) até 29 será considerado como ano 2000, e maior ou igual a 30 será como 1900.
Bom, seguindo este principio... a data 01/12/02, será considerada como ano 2000 pois ano 02 é menor que 30 ( até 29), e a data 01/12/62 será realmente ano 1900, pois 62 é maior que 30.
Faça um teste com este exemplo:
Código: Selecionar todos
CLEAR
SET DATE TO BRITISH
SET CENTURY ON
v_ano=(YEAR(DATE())-89)
SET EPOCH TO v_ano
@ row(),10 say "Data de Hoje: "+dtoc(DATE())+" - SET EPOCH em: "+str(v_ano,4,0)
col=5
for i=0 to 70
@ row()+1, col SAY CTOD("01/12/"+strzero(i,2))
if row()=20
col+=20
@ 00,col say ""
endif
next
@ 23,00 say ""
retuAbraços,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
- Pablo César
- Usuário Nível 7

- Mensagens: 5312
- Registrado em: 31 Mai 2006 10:22
- Localização: Curitiba - Paraná
Problema ano 2010
Está certo no ponto de vista do controle do SET EPOCH, mas se quiser programar uma data futura, o SET EPOCH não seria o mais indicado, assim como no exemplo que postei.
Um clip-abraço !
Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
- Toledo
- Administrador

- Mensagens: 3133
- Registrado em: 22 Jul 2003 18:39
- Localização: Araçatuba - SP
- Contato:
Re: Problema ano 2010
Ah bom... entendi agora, realmente da maneira como fiz se ele quiser incluir no sistema dele uma parcela com vencimento para o ano 2062, realmente não vai dar certo. Mas achei que ele não teria um lançamento como uma data tão futura assim.... acho que o Clipper não chega até lá não! Mas se os vencimentos forem dentro dos próximos 20 anos, vai funcionar sem problema algum.
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
- alaminojunior
- Colaborador

- Mensagens: 1717
- Registrado em: 16 Dez 2005 21:26
- Localização: Ubatuba - SP
Re: Problema ano 2010
Imagine nós !!!Toledo escreveu:acho que o Clipper não chega até lá não!
Compilador xHarbour 1.2.3 + Embarcadero C++ 7.30
MySQL c/ SQLRDD
HwGui + GTWVG
MySQL c/ SQLRDD
HwGui + GTWVG
Re: Problema ano 2010
Boa tarde, tenho um programa feito em clipper e me deparei com este erro, como q faço para tentar corrigir, sendo q não fui eu quem fiz o programa.
Teria como eu modifica-lo? Colocar o Código fonte acima?
Como?
Me deem uma Luz por favor...
Obrigado
Teria como eu modifica-lo? Colocar o Código fonte acima?
Como?
Me deem uma Luz por favor...
Obrigado
- alaminojunior
- Colaborador

- Mensagens: 1717
- Registrado em: 16 Dez 2005 21:26
- Localização: Ubatuba - SP
Re: Problema ano 2010
Seja bem vindo ao fórum.
Caso positivo, as tarefas serão:
acrescentar um
um
e rever as rotinas que usam dados tipo data.
Boa sorte.
Para fazer isso, você precisará do codigo fonte do programa. Você os tem ? São arquivos com extensão ".prg"marckpvai escreveu:...tenho um programa feito em clipper e me deparei com este erro, como q faço para tentar corrigir, sendo q não fui eu quem fiz o programa.
Teria como eu modifica-lo? Colocar o Código fonte acima?
Como?
Caso positivo, as tarefas serão:
acrescentar um
Código: Selecionar todos
Set Century OnCódigo: Selecionar todos
Set Date Format to "dd/mm/yyyy"Boa sorte.
Compilador xHarbour 1.2.3 + Embarcadero C++ 7.30
MySQL c/ SQLRDD
HwGui + GTWVG
MySQL c/ SQLRDD
HwGui + GTWVG


