FoxPro/Visual FoxPro - Como saber cuantos dias habiles hay en un rango de

   
Vista:

Como saber cuantos dias habiles hay en un rango de

Publicado por Noe Velazquez (71 intervenciones) el 05/10/2007 00:58:10
Hola foro gracias de antemano por su atencion.

Espero me pudan ayudar

como puerdo saber cuantos dias habiles hay en un rango de fechas el usuario captura en dos textbox con un formato de dd/mm/aaaa los dias habiles son Lunes,Martes,Miercoles,Jueves y Viernes
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:Como saber cuantos dias habiles hay en un rango

Publicado por enrique (1041 intervenciones) el 05/10/2007 14:19:27
existe la funcion DOW() la cual determina el número del día de la semana empezando por defecto el domingo = 1, lunes = 2, martes = 3,.... sabado = 7;

supongamos que tenemos 3 textbox, text1 = 05/10/07 text2 = 19/10/07 y text3 = cantidad de días habiles

en el lostfocus del text2
v_dias = thisform.text2.value - thisform.text1.value
v_suma=0
for x=0 to v_dias
if dow(thisform.text1.value)#1 and dow(thisform.text1.value)#7
v_suma = v_suma + 1
endif
thisform.text1.value = thisform.text1.value + 1
endfor
thisform.text3.value = v_suma

esto da como resultado 11 que se visualiza en el text3.

Este ejemplo incluye el día de inicio en el resultado final (text3) si queres que no lo incluya modifica x=1 to v_dias

espero te sirva
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:Como saber cuantos dias habiles hay en un rango

Publicado por Gabriel (112 intervenciones) el 06/10/2007 03:16:16
Hola Noe:

Puedes hacer esto.
*------------------------------------
*Si lo que los text almacenan son datos date() entonces le quitas el ctod( )

dFecha_Ini = cTod(thisform.text1.value)
dFecha_Fin = cTod(thisform.text2.value)

nDias = (dFecha_Fin - dFecha_Ini) + 1

nDias_Hab = 0 &&Número de Dias hábiles
for i = 1 to nDias
IF !INLIST(DOW(dFecha_Ini+i) ,1,7) &&Si no es Domingo ni Sábado
nDias_Hab = nDias_Hab + 1
endif
endfor
?nDias_Hab && Resultado
*------------------------------------------------

Bueno Noe espero te sirva.

Atte. Gabriel Sánchez.
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:Como saber cuantos dias habiles hay en un rango

Publicado por Gabriel (406 intervenciones) el 06/10/2007 17:28:18
Amigo Noe :

A continuacion te muestro una rutina practica y funcional que realiza lo que planteas...

SET CENTURY ON
SET DATE BRITISH
CLEAR

dFechaIni = CTOD("01/09/2007")
dFechaFin = CTOD("08/09/2007")

dFechAux = dFechaIni

CANT=0
DO WHILE dFechAux <= dFechaFin
IF !INLIST(DOW(dFechAux),7,1) && Sabados y Domingos
? DTOC(dFechAux)+SPACE(5)+CDOW(dFechAux)
CANT=CANT+1
ENDIF
dFechAux = dFechAux+1
ENDDO
? "TOTAL DE DIAS => " + STR(CANT,2)

Doy por respondido tu pregunta.

Saludos,

GABRIEL
(Lima-Perú)
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:Como saber cuantos dias habiles hay en un rango

Publicado por noe velazquez (71 intervenciones) el 08/10/2007 22:29:41
Wow !!

Gacias ( Enrique y Gabriel ) funciono de maravilla
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