FoxPro/Visual FoxPro - Calcular Año, Mes y Dia en Vfp

   
Vista:

Calcular Año, Mes y Dia en Vfp

Publicado por Jesus (85 intervenciones) el 12/08/2014 18:23:03
Buenos Dias amigos

Tengo un Formulario por el cual deseo hace calculos de años de trabajo del personal, entre los cuales cuento con dos campos TexBox llamado Fec_Ini y Fec_Fin y su propiedad en el el Format esta como D de campos fecha. Lo q necesito es que me calcule y me devuelvo los valores del Año, Mes y Dia q han Transcurrido en base a los Valores Fec_Ini y Fec_Fin.

De antemano mil Gracias.
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

Calcular Año, Mes y Dia en Vfp

Publicado por Saul (676 intervenciones) el 12/08/2014 23:36:51
Mira este links

http://es.scribd.com/doc/103900444/Manejo-de-Fechas-en-Visual-Fox-Pro

http://www.portalfox.com/modules.php?op=modload&name=News&file=article&sid=1181

https://groups.google.com/forum/#!topic/publicesvfoxpro/1Jwk14NzQg0

Saludos

Sha
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

Calcular Año, Mes y Dia en Vfp

Publicado por Fidel José (558 intervenciones) el 13/08/2014 00:18:33
local loResp,ldFechaIngreso, ldFechaCalc

ldFEchaIngreso=Date(2002,5,4)
ldFechaCalc=Date()

LoResp=Calcedad(ldFechaIngreso , ldFechaCalc)
? loResp.Tiempo
? loResp.Años
? loResp.Meses
? loREsp.Dias

loResp=null



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
PROCEDURE calcedad
		LPARAMETERS tdFecha1,tdFecha2
		*!*	----------------------------------------------
		*!*	Autor:			Fidel Charny
		*!*	tdFecha1 es la fecha inferior
		*!*	tdFecha2 es la fecha superior o Date()
		*!*	----------------------------------------------
		tdFecha2=EVL(tdFecha2,DATE())
		LOCAL lnAnos,lnMeses,lnDias,lnAno2,lnMes2,lnDia1,lnDia2,;
			objEmpty,lcString
 
		this.dosvalores(@tdFecha1 , @tdFecha2 )
 
		lnAnos =Year(tdFecha2)-Year(tdFecha1) - 1
		lnMeses =12-Month(tdFecha1) + Month(tdFecha2) - 1
 
		do case
			case Day(tdFecha1) = Day(tdFecha2)
				lnMeses = lnMeses+1
			case Day(tdFecha2) > Day(tdFecha1)
				lnMeses = lnMeses + 1
			case Day(tdFecha2) < Day(tdFecha1)
 
		endcase
		if lnMeses >= 12
			lnMeses =lnMeses - 12
			lnAnos =lnAnos + 1
		endif
 
		if Day(tdFecha1)=Day(tdFecha2)
			lnDias =0
		else
			lnDia1 =Day(tdFecha1)
			lnDia2 =Day(tdFecha2)
			if Day(tdFecha2) > Day(tdFecha1)
				lnDias =Day(tdFecha2)-Day(tdFecha1)
			else
				lnMes2 =month(tdFecha2)-1
				lnAno2 =Year(tdFecha2)
				if lnMes2 = 0
					lnMes2 =12
					lnAno2 =lnAno2-1
				endif
				lnDias =lnDia2 + DAY(Gomonth( Date( lnAno2 , lnMes2, 1) , 1) - 1) - lnDia1
			endif
		endif
 
		lcString=TRANSFORM(lnAnos) + " Año" + IIF(lnAnos > 1,"s","")+ ", ";
			+TRANSFORM(lnMeses) + " Mes" + IIF(lnMeses > 1,"es","")+ ", ";
			+TRANSFORM(lnDias) + " Dia" + IIF(lnDias > 1,"s","")
 
 
		objEmpty=NEWOBJECT("Empty")
		ADDPROPERTY(objEmpty,"Tiempo",lcString)
		ADDPROPERTY(objEmpty,"Años",lnAnos)
		ADDPROPERTY(objEmpty,"Meses",lnMeses)
		ADDPROPERTY(objEmpty,"Dias",lnDias)
 
		REturn objEmpty
 
ENDPROC
[/code]
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

Calcular Año, Mes y Dia en Vfp

Publicado por Jesus (85 intervenciones) el 14/08/2014 17:47:55
Estimado Fidel
en mi formulario e creado un Metodo y alli he copiado este codigo q me has enviado pero cuando Grabar o cerrar este Metod me sales este error: Los Metodos y eventos no pueden contener procedimientos o definicones de clases anidadas.
como puedo solucionar este problemita Gracias
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

Calcular Año, Mes y Dia en Vfp

Publicado por Fidel José (558 intervenciones) el 15/08/2014 01:01:42
Debes eliminar la primer linea "PROCEDURE calcedad" y también la última (ENDPROC) aunque el sistema la elimina automáticamente. O sea, que el método tiene que tener como primer linea:
LPARAMETERS tdFecha1,tdFecha2

Debes ajustar la llamada al método del form:
local loResp,ldFechaIngreso, ldFechaCalc

ldFEchaIngreso=Date(2002,5,4)
ldFechaCalc=Date()

LoResp=Thisform.Calcedad(ldFechaIngreso , ldFechaCalc)
? loResp.Tiempo
? loResp.Años
? loResp.Meses
? loREsp.Dias

loResp=null


Eso es todo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Calcular Año, Mes y Dia en Vfp

Publicado por Jesus (85 intervenciones) el 15/08/2014 18:21:08
Mi Gracias Fidel
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