Página 1 de 2

campo date com ano com 4 digitos

Enviado: 23 Dez 2008 05:30
por clauber
como colocar picture em campo date para que fique com o ano com 04 digitos: xx/xx/xxxx ??

Re: campo date com ano com 4 digitos

Enviado: 23 Dez 2008 08:13
por anacatacombs
Bom dia.

Normalmente eu não coloco PICTURE nos campos data.

Eu coloco antes: SET DATE TO BRITISH (...) SET CENTURY ON (ano com 4 digitos.) SET EPOCH TO 2000

[]'s

Ana

Re: campo date com ano com 4 digitos

Enviado: 23 Dez 2008 16:53
por sambomb
Set century on

para a data ficar no formato Dia/Mês/Ano é o

Set date to british

e para configurar a época a qual se refere é o

Set epoch to 2000

Obs: eu utilizo 1920 pois caso você digite uma data 25/12/32 será de 1932 e não de 2032, pois o set epoch considera os 2 ultimos digitos do ano para identificar o "século" em que você se encontra:

Ex.: 25/12/32
Set epoch 1900
25/12/1932
Set epoch 1920
25/12/1932
Set epoch 2000
25/12/2032

Re: campo date com ano com 4 digitos

Enviado: 23 Dez 2008 18:17
por Eolo
Sambomb, confesso que não entendi: você usa 1920 por que? Se o usuário do seu sistema digitar 32, você assume 1932? Há ocorrências desse ano? Não seria 2032, não? Será que vc não trocou as bolas?

No meu caso, faço como a Ana e, se o usuário digitar uma data como a que vc citou (25/12/32), eu a reconheço como 2032, porque eu acho absolutamente pouco provável, num sistema qualquer, que se utilize entradas com datas de 1932.

Mas, mesmo assim, se for uma data muito "fora do padrão" da base de dados (conta a receber vencível em 25/12/32, por exemplo), eu faço o usuário confirmar, porque tem todo jeito de erro de digitação.


EM TEMPO (EDITANDO): Aliás, se usar o SET CENTURY ON, pra que o SET EPOCH? Se está ON, o usuário vai ter a chance de digitar o ano inteiro (2032 ou 1932), então o EPOCH é dispensável. Eu uso Century OFF em todos meus sistemas (menos um, que tem datas do século passado, por volta de 1980). Pra que fazer ocupar espaço com 2 dígitos a mais do ano se o cliente só tem lançamentos de 01/01/2000 pra frente?

Re: campo date com ano com 4 digitos

Enviado: 24 Dez 2008 08:54
por sambomb
Para data de nascimento sim!
é mais fácil achar alguem que nasceu em 1932 (ou seja 76 anos) do que alguem que ainda vai nascer!
Ficando o limite para data de nascimento para 1921, 87 anos que convenhamos é um limite adequado para quem não trabalha com asilos ou coisas do gênero, e o limite superior é 2020 que tem 12 anos de margem para frente, normalmente seu programa irá ficar desatualizado em menos tempo do que isso e não conheço ninguem que se programe com tanta antecedencia....(ou divida em tantas vezes!)

P.S.: Também utilizo set century off mas foi essa a pergunta do tópico...

Re: campo date com ano com 4 digitos

Enviado: 24 Dez 2008 11:02
por Eolo
Foi o que eu disse: eu tenho um sistema (só um) que usa datas "antigas". Para ele, ao invés de ficar fazendo contas com o SET EPOCH, eu simplesmente uso CENTURY ON: com os quatro dígitos para ano, o usuário pode registrar datas entre 01/1/0100 e 31/12/2999 (se não me falha a memória).

O SET EPOCH, então, só tem utilidade de fato quando vc usa CENTURY OFF.

E, no caso deste tópico, o Clauber falou em 4 dígitos (CENTURY ON)...

Re: campo date com ano com 4 digitos

Enviado: 24 Dez 2008 11:42
por anacatacombs
Bom, na minha postagem, o (...) significava OU, mas acho que o colega do topico deve ter entendido

Re: campo date com ano com 4 digitos

Enviado: 24 Dez 2008 16:07
por sambomb
Ana, estava apenas tentando complementar o que você disse pois achei incompleta a resposta.
Eolo, o Clauber queria saber como funcionava, e, na tentativa de complementar o que a Ana disse expliquei sobre cada "set" que ela explicou e como parte da explicação dei o exemplo do set epoch que eu uso.....

Re: campo date com ano com 4 digitos

Enviado: 24 Dez 2008 21:26
por Eolo
Ana e Sambomb, desculpem se falei algo meio errado, não foi a intenção.

Eu entendi o que vocês disseram, mas o Clauber foi bem específico na pergunta: "como colocar picture em campo date para que fique com o ano com 04 digitos: xx/xx/xxxx ??".

A resposta, a meu ver, pra resolver o problema dele, seria:
a) não precisa usar picture em data. Usando os comandos a seguir, os seus GETs já vão mostrar o que vc quer.
b) se vc quer ano com 4 dígitos, use o seguinte no começo do seu sistema:
. SET CENTURY ON (vai mostrar o ano com 4 dígitos)
. SET DATE BRITISH (vai mostrar a data do jeito que vc quer, com dia/mês/ano)

O que saiu disso pode ter completado a resposta, mas fugiu do escopo da pergunta dele.

Re: campo date com ano com 4 digitos

Enviado: 26 Dez 2008 10:17
por clauber
valeu galera, por isso que gosto desse forum, aqui todos compartilham e emitem opinioes, democracia a todo vapor. . .
vou seguir o que vcs disseram. . .

Re: campo date com ano com 4 digitos

Enviado: 26 Dez 2008 14:55
por anacatacombs
Oloko, Calma gente :)

As vezes digitamos com tanta pressa, que o texto pode ser compreendido de forma incorreta ... Mas enfim, o problema foi solucionado, e isso que importa.

Re: campo date com ano com 4 digitos

Enviado: 29 Dez 2008 08:36
por sambomb
Já que o problema foi resolvido e ninguem saiu ferido ta tudo certo...

Re: campo date com ano com 4 digitos

Enviado: 29 Dez 2008 09:25
por clauber
amigos do forum obrigado pela atençao. .. mas usei a anos programo em clipper e uso essas funcoes para que o ano fique com 4 digitos com sucesso, mas agora usando o

xharbour 1.0.o simplex e com a gtwvw, naum estou consigo exito, por que sera?

essa linha de comando e colocado no prg principal:
SET DATE BRITISH ; SET EPOCH TO 1920 ; SET CENTURY ON


Essas LInhas de comando colocoda em uma rotina para entrada de dados
mDatC := Date()
wvw_drawboxget( 1 , 01, 16, 10 ) ; wvw_drawboxget( 1 , 01, 27, 16 )
Setcolor("&CorSay,&CorGet")
@ 01,01 Say [Data do Caixa:] Get mDatC Pict [##/##/##] ;
Valid vDtPer3(Date(),mDatC,[Data de Caixa Maior que a Data Atual !!!])
.And. vDiaSem([mDatC],01,27)
@ 01,27 Say Space(16) Color([N/W*])
Read
If Lastkey() == 27 ; Return ; EndIf

onde esta o erro ????

Re: campo date com ano com 4 digitos

Enviado: 29 Dez 2008 09:57
por sambomb
@ 01,01 Say [Data do Caixa:] Get mDatC Pict [##/##/##] ;
Valid vDtPer3(Date(),mDatC,[Data de Caixa Maior que a Data Atual !!!])
.And. vDiaSem([mDatC],01,27)

não seria assim:

Código: Selecionar todos

@ 01,01 Say  "Data do Caixa:" Get mDatC ;
Valid ValidaData()

function ValidaData()
if Date() < mDatC 
   Msg("Data de Caixa Maior que a Data Atual !!!")
end

Return (if Date() < mDatC .And. vDiaSem([mDatC],01,27), .F., .T.)

Re: campo date com ano com 4 digitos

Enviado: 29 Dez 2008 10:12
por clauber
amigo mais uma vez obrigado pela atençao, mas deu erro na funcao nova que vc escreveu. . .