Clipper/FiveWin - Convertir Fechas a formato Juliano

   
Vista:

Convertir Fechas a formato Juliano

Publicado por Luis (8 intervenciones) el 16/04/2009 23:03:51
Estimados, necesito convertir un formato de fecha 20/04/2009 a Año y Dia Juliano, de 4 caracteres..
Alguien tiene experiencia, o alguna funcion de ejemplo para ver...?
Desde ya muchas gracias, Luis
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Convertir Fechas a formato Juliano

Publicado por Javier (44 intervenciones) el 17/04/2009 00:36:25
Hola Luis, mira si te sirve. Saludos. (Aunque no se que tiene que ser de 4 caracteres, el año resultante o la fecha juliana). Cualquier cosa escribime.

FUNCTION Main()
LOCAL cJuliano

SET DATE FRENCH
cJuliano=DtoJ( Date() )
? cJuliano
Inkey(0)

RETURN NIL


FUNCTION DtoJ( dFecha )

LOCAL nAnio := Year( dFecha )
LOCAL dInicio // Fecha de inicio del año.
LOCAL nDias // Dias transcurridos desde principio de año
LOCAL cValor // Resultado a devolver

dInicio=CTOD("01/01/"+Str(nAnio,4) )

nDias=dFecha - dInicio // Se supone que dFecha es posterior a dInicio

cValor =STR(nAnio,4)+STRzero(nDias,3)

RETURN cValor
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Convertir Fechas a formato Juliano

Publicado por Luis (8 intervenciones) el 17/04/2009 21:44:26
Hola Javier gracias por responder.
Te comento es para armar el codigo de barra, en las Facturas de un cliente, que va a realizar la cobranza zonal, con el banco, utiliza la Red Link.
El banco como requisito para armar el codigo, me pide que las fechas de vencimientos Año y Dia, las arme en formato Juliano.
Y me envia con la info requerida unos ej. 1er Venc. Año y Dia Juliano = 9031 = 31 de enero 2009. Y 9059 = 28 de feb de 2009. Long 4 posiciones.

Asi que voy a probar tu rutina y te cuento cuanto me da.
Saludos, Luis !!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Convertir Fechas a formato Juliano

Publicado por Javier (44 intervenciones) el 18/04/2009 14:21:48
Luis la funcion que te pasé, para 31/01/2009, devuelve la fecha así: 2009031
Te escribo la función modificada para que te dé : 9031(Ahora numérico). Aunque, una duda: que va a pasar cuando sea 2010? Para 31/01/2010 que te tiene que devolver? La función será usada en el 2010? :(.

Saludos.

FUNCTION DtoJ( dFecha )

LOCAL nAnio := Year( dFecha ) - 2000 // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
LOCAL dInicio // Fecha de inicio del año.
LOCAL nDias // Dias transcurridos desde principio de año
LOCAL cValor // Resultado a devolver

dInicio=CTOD("01/01/"+StrZero(nAnio,2) ) // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

nDias=dFecha - dInicio // Se supone que dFecha es posterior a dInicio

cValor =STR(nAnio,1)+STRzero(nDias,3) // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

RETURN Val( cValor ) //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Convertir Fechas a formato Juliano

Publicado por Luis (8 intervenciones) el 20/04/2009 14:51:07
Javier, te comento, la funcion me devuelve 2009030 en cambio de 2009031, esta copiada idem, decime donde tendria que cambiar..? Lo mismo sucede con la numerica 9030 en cambio de 9031. Puede ser una confiracion en mi pc...

Y con respecto al 31-01-2010 si, la empresa hace contrato de cobranza por 5 años con el banco, osea que tendria que funcionar en esa fecha.

Saludos y gracias por responder. Luis !!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar