Página 1 de 1

Problema ano 2010

Enviado: 14 Jul 2009 16:53
por Darc
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

Re: Problema ano 2010

Enviado: 14 Jul 2009 17:06
por alaminojunior
Você pode solucionar usando

Código: Selecionar todos

Set Century On
e as datas no formato dd/mm/yyyy

Re: Problema ano 2010

Enviado: 14 Jul 2009 17:42
por Toledo
Olá Darc, você pode fazer o seguinte:

SET EPOCH TO (YEAR(DATE())-89)

Abraços,

Problema ano 2010

Enviado: 14 Jul 2009 18:17
por Pablo César
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:

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)
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.

Re: Problema ano 2010

Enviado: 14 Jul 2009 18:22
por alaminojunior
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.
Pois é. Daí talvez tenha problemas só na virada do ano 9999. :%

Problema ano 2010

Enviado: 14 Jul 2009 18:25
por Pablo César
Talvez para resolver datas impossíveis ao usuário digitar erradamente, usar o SET CENTURY + tratamento de datas.

Re: Problema ano 2010

Enviado: 14 Jul 2009 18:39
por Maligno
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.

Re: Problema ano 2010

Enviado: 14 Jul 2009 19:22
por Toledo
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:
Pablo, não achei erro algum no teste que você fez... pra mim está tudo 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 ""
retu
Observe que sempre que você alterar a data do sistema, as datas consideradas como ano 2000 vai alterando também.

Abraços,

Problema ano 2010

Enviado: 14 Jul 2009 19:29
por Pablo César
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.

Re: Problema ano 2010

Enviado: 14 Jul 2009 19:44
por Toledo
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.

Re: Problema ano 2010

Enviado: 14 Jul 2009 21:42
por alaminojunior
Toledo escreveu:acho que o Clipper não chega até lá não!
Imagine nós !!!

Re: Problema ano 2010

Enviado: 02 Fev 2010 14:40
por marckpvai
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

Re: Problema ano 2010

Enviado: 02 Fev 2010 14:50
por alaminojunior
Seja bem vindo ao fórum.
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?
Para fazer isso, você precisará do codigo fonte do programa. Você os tem ? São arquivos com extensão ".prg"
Caso positivo, as tarefas serão:
acrescentar um

Código: Selecionar todos

Set Century On
um

Código: Selecionar todos

Set Date Format to "dd/mm/yyyy"
e rever as rotinas que usam dados tipo data.

Boa sorte.