criticar data

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

Avatar do usuário
Netavin
Usuário Nível 3
Usuário Nível 3
Mensagens: 306
Registrado em: 28 Fev 2007 08:37
Localização: Cacoal-RO

criticar data

Mensagem por Netavin »

Boa tarde amigos!
Em meu sistema, quando da solicitação de data de entrada, faço a crítica para bloquear entrada como "30/02" , etc . . .
Em outros casos, para verificar se a data da baixa não é menor que a data da entrada do produto.
Porém, não consigo evitar a entrada de uma data como "26/06/1010", por exemplo; como se vê o ano não é analisado e foi aceito.
Gostaria de ajuda neste sentido, para evitar esse tipo de entrada inválida.

Obrigado a todos!

[]´s
Netavin
TK90 / TK95 / APPLE IIe / 286 / 386 / 486 / 586 / AMD Atlhon
" Sem saber que era impossível, foi lá e fez !! "
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Re: criticar data

Mensagem por Maligno »

Por meio de uma cláusula VALID teste o ano usando a função Year().
[]'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!
Avatar do usuário
Toledo
Administrador
Administrador
Mensagens: 3133
Registrado em: 22 Jul 2003 18:39
Localização: Araçatuba - SP
Contato:

Re: criticar data

Mensagem por Toledo »

Netavin escreveu:faço a crítica para bloquear entrada como "30/02"
Netavin, se o campo for do tipo data mesmo, o próprio Clipper ou Harbour já faz esta crítica. Se você digitar uma data que não existe (30/02, 31/09, etc), você não consegui sair do GET.

Agora segue um exemplo da dica do Maligno:

Código: Selecionar todos

vdata:=date()
@ 10,10 get vdata valid verdata(vdata)
read
...
...

func verdata(dData)
Local ret:=.T.
if year(dData) < 1900
 Alert("Data Invalida")
 ret:=.F.
endif
retu (ret)
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
TerraSoftware
Usuário Nível 3
Usuário Nível 3
Mensagens: 353
Registrado em: 28 Jul 2004 13:14
Localização: Cianorte-PR
Contato:

Re: criticar data

Mensagem por TerraSoftware »

Caros colegas.
O comando set epoch pode ajudar.
Isso facilita para as pessoas que costumao digitar o ano com apenas os 2 ultimos digitos.
Eu uso sempre o ano que estamos menos 70, isso facilita na hora de digitar a data de nascimento de pessoas.

Código: Selecionar todos

SET EPOCH TO (YEAR(DATE())-70)
www.sisterra.com.br
xHarbour 1.0.0 - Bcc 6.3 - Gtwvw/Hwgui
DbfCdx/MySql
Avatar do usuário
Netavin
Usuário Nível 3
Usuário Nível 3
Mensagens: 306
Registrado em: 28 Fev 2007 08:37
Localização: Cacoal-RO

Re: criticar data

Mensagem por Netavin »

Bom dia.
Agradeço a tds que me ajudaram na solução do problema.
Com as informações consegui resolver a questão.
Um abraço a todos.

[]´s
Netavin
TK90 / TK95 / APPLE IIe / 286 / 386 / 486 / 586 / AMD Atlhon
" Sem saber que era impossível, foi lá e fez !! "
Responder