Página 1 de 1
Datas
Enviado: 28 Fev 2007 13:34
por UKclipper
Olá, pessoal!
Tenho algumas dúvidas a respeito do uso de datas:
- Como verificar se o valor digitado em uma variável é uma data válida.
- Como somar dias, meses e anos a uma data.
- Como subtrair dias, meses e anos de uma data.
- Como saber o último dia do mês.
Se não for pedir muito, alguém sabe como fazer tudo isso?
Valeu, gente!
Enviado: 28 Fev 2007 14:18
por Clipper
Prezado Colega
Para só aceitar uma data válida basta utilizar uma variavel do tipo data.
SET CENTURY ON
SET EPOCH TO 1999
MDATA=CTOD(SPACE(8))
@ 10,00 GET MDATA PICT "99/99/9999"
Na caso acima só aceita data válida.
--------------------------------------------------------------------------
Para somar ou subtrair dias de uma data é simples :
DIA=DATE()
NOVODIA1=DIA+60 * será a data do computador + 60 dias
NOVODIA2=DIA-45 * será a data do computador - 45 dias
Para somar anos a uma data
ANO=YEAR(DATE())
ADDANO=STR(ANO+15,4)
NOVOANO1=CTOD(SUBSTR(DTOC(DATE()),1,6)+ADDANO)
Neste caso o ano será adicionado 15 anos
SUBANO=STR(ANO-8,4)
NOVOANO1=CTOD(SUBSTR(DTOC(DATE()),1,6)+SUBANO)
Neste caso o ano será subtraido 8 anos
Para adcionar ou subtrair meses de uma data
ADDMONTH()
Função da Clipper Tools
Para saber o último dia do mês
EOM()
Função da Clipper Tools
Até logo.
Marcelo
Enviado: 01 Mar 2007 09:39
por gvc
"- Como verificar se o valor digitado em uma variável é uma data válida. "
Quando vc inicia uma variável do tipo data, quaisquer entrada de dados é verificado automaticamente. Se vc entrar com uma data inválida, o get não aceita a entrada
xdata := ctod('')
// coloquei isto no início do sistema.
SET CENTURY ON // Ativa mostrar data de 4 digitos (século)
SET EPOCH TO 1930 // Eu uso assim
set date british // Define data como dd/mm/aa
xdata := ctod('')
@ 10,00 GET xdata // Não precisa colocar a picture
"- Como somar dias, meses e anos a uma data. "
Para somar dias, vc soma os números na data.
xdata += 5
Se vc não tem a CATools, pode montar uma função para somar meses e outra para somar anos.
"- Como subtrair dias, meses e anos de uma data. "
Mesmo processo que o utilizado para somar dias.
"- Como saber o último dia do mês."
Eu tive que criar uma função para isso.
function _eom(q_data)
local a1, a2
a1 := q_data
a2 := month(q_data)
// Procura o próximo mes
while month(a1) = a2
a1++
end
// Volta para o dia anterior. Este é o último dia do mes.
a1--
return(a1)
- Para saber quantos dias separa uma data de outra, subtraia como faria com números.