Página 1 de 1

Para Xevi, a propósito de la validación de fechas...

Publicado: Mar Ene 29, 2013 4:55 pm
por xmessoft
....Hola Xevi, haz la consulta en la parte de los pobres también hombre ;-)
Bueno ahora en serio, el CToD siempre devuelve una fecha aunque sea
vací­a... de ahí­ el fallo.
Prueba esto que deberí­a funcionar:
function EsFecha( cFecha )
return( cFecha == CToD( cFecha ) )
Saludos Xevi

Para Xevi, a propósito de la validación de fechas...

Publicado: Mar Ene 29, 2013 4:57 pm
por xmessoft
Perdona esto:
function EsFecha( cFecha )
return( cFecha == DToC( CToD( cFecha ) ) )
El 29/01/2013 16:55, Manu escribió:
> ...Hola Xevi, haz la consulta en la parte de los pobres también hombre ;-)
> Bueno ahora en serio, el CToD siempre devuelve una fecha aunque sea
> vací­a... de ahí­ el fallo.
>
> Prueba esto que deberí­a funcionar:
>
> function EsFecha( cFecha )
> return( cFecha == CToD( cFecha ) )
>
> Saludos Xevi

Para Xevi, a propósito de la validación de fechas...

Publicado: Mar Ene 29, 2013 7:02 pm
por alcisoft
Manu,
Con el century oculto, lo normal, esa función no funcion(a) con
EsFecha("01/01/1913")
Saludos
"Manu" <xmessoft@gmail.com> escribió en el mensaje
news:5107f162$[email=1@svctag-j7w3v3j....]1@svctag-j7w3v3j....[/email]
> Perdona esto:
>
> function EsFecha( cFecha )
> return( cFecha == DToC( CToD( cFecha ) ) )
>
> El 29/01/2013 16:55, Manu escribió:
>> ...Hola Xevi, haz la consulta en la parte de los pobres también hombre
>> ;-)
>> Bueno ahora en serio, el CToD siempre devuelve una fecha aunque sea
>> vacía... de ahí el fallo.
>>
>> Prueba esto que debería funcionar:
>>
>> function EsFecha( cFecha )
>> return( cFecha == CToD( cFecha ) )
>>
>> Saludos Xevi
>

Para Xevi, a propósito de la validación de fechas...

Publicado: Mar Ene 29, 2013 7:16 pm
por XeviCOMAS
Yo le he añadido...
Function EsFecha( cFecha )
cFecha := StrTran( cFecha, "-", "/" )
return( cFecha == DToC( CToD( cFecha ) ) )
Por el tema del Set( _SET_DATEFORMAT, ... )
y el problema está como bien dice "x", en el Century.
Esto lo da como .F. "01/01/0001"
Habrá que hacer algun ajuste...
aunque mi xIsDate() me funciona correctamente.
FUNCTION xIsDate(c)
Local cDateFormat := Set( _SET_DATEFORMAT )
Local nLenDateFormat := Len(cDateFormat)
Local n, lFormatN := .F.
If ValType(c) = "C" .and. nLenDateFormat = Len(c)
lFormatN := .T.
For n:=1 to nLenDateFormat
IF (Chr(SubStr(cDateFormat,n,1)) = 100 .or.
Chr(SubStr(cDateFormat,n,1)) = 109 .or. Chr(SubStr(cDateFormat,n,1)) = 121)
// "d" "m" "y"
If !(Chr(SubStr(c,n,1)) > 47 .and. Chr(SubStr(c,n,1)) < 58)
//"0123456789"
lFormatN := .F.
EndIf
EndIf
Next
EndIf
Return lFormatN .and. !Empty(CToD(c))
Gracias.
Un Saludo,
Xevi.
"x" ha escrit al missatge:[email=51080e85@svctag-j7w3v3j....]51080e85@svctag-j7w3v3j....[/email]
Manu,
Con el century oculto, lo normal, esa función no funcion(a) con
EsFecha("01/01/1913")
Saludos
"Manu" <xmessoft@gmail.com> escribió en el mensaje
news:5107f162$[email=1@svctag-j7w3v3j....]1@svctag-j7w3v3j....[/email]
> Perdona esto:
>
> function EsFecha( cFecha )
> return( cFecha == DToC( CToD( cFecha ) ) )
>
> El 29/01/2013 16:55, Manu escribió:
>> ...Hola Xevi, haz la consulta en la parte de los pobres también hombre
>> ;-)
>> Bueno ahora en serio, el CToD siempre devuelve una fecha aunque sea
>> vací­a... de ahí­ el fallo.
>>
>> Prueba esto que deberí­a funcionar:
>>
>> function EsFecha( cFecha )
>> return( cFecha == CToD( cFecha ) )
>>
>> Saludos Xevi
>