perdon por meter mi cuchara, el sabado es dow = 7
dFEcha = {fecha inicio}
dHasta = {fecha final}
nDias = 0
DO WHILE dFecha <= dHasta
IF NOT INLIST(DOW(dFecha),1,6) && Domingo (1), Sabado (6) &&&&&
aqui es 7
nDias = nDias + 1
ENDIF
dFecha = dFecha + 1
ENDDO
On Feb 2, 4:28 am, Julio Rossi <
julio.ro...@ilt.com.ar> wrote:
> Hola Clauido, si, como siempre dicen en VFP hay por lo menos tres formas de hacer las cosas :)
> Saludos y gracias!
> Julio Rossi
> El 01/02/2012 09:56 p.m., Claudio Luna escribió:Aca otra....
> FUNCTION diaslaborales
> LPARAMETERS fechai,fechaf
> *!* fechai = Ctod("01/12/2011")
> *!* fechaf = Ctod("05/12/2011")
> dinicio = Dow(fechai)
> dfinal = Dow(fechaf)
> cantdias = (fechaf - fechai) + 1
> If dinicio = 1
> diasi = 5
> Else
> diasi = 5 - (dinicio - 2)
> Endif
> If dfinal = 7
> diasf = 5
> Else
> diasf = dfinal - 1
> Endif
> diaslab = (((cantdias - (8 - dinicio) - ffinal) / 7) * 5)
> return(diasi + diasf + diaslab)
> Saludos
> ClaudioEl 1 de febrero de 2012 21:12, Claudio Luna<
thom...@gmail.com>escribió:Julio
> probando el sql vi que se te había cambiando una letra al final
> select count(ld_ini+recno()-1) as nu_dias from cualquiertabla where between(ld_ini+recno()-1,ld_ini,ld_fin) and dow(ld_ini+recno()-1) <> 1 and dow(ld_ini+recno()-1) <> 7
> El 1 de febrero de 2012 21:06, Claudio Luna<
thom...@gmail.com>escribió:También me apure a responder, Julio la solución con el sql es muy ingeniosa ..
> muchas gracias por compartirla..
> Saludos
> ClaudioEl 1 de febrero de 2012 19:47, Claudio Luna<
thom...@gmail.com>escribió:Hola
> Espero que te pueda servir esta :
> *!* cuantos días si sábado y domingo hay entre dos fechas
> fecha1 . .. fecha inicial
> fecha2 .. .. fecha final
> ncantdias = fecha2 - fecha1
> *!* domingo 1
> diainicial = DOW(fecha1)
> diafinal = DOW(fecha2)
> nSabDom = INT(ncantdias / 7) * 2
> nSabDom = IIF(diafinal = 6,nSabDom+1,nSabDom)
> RETURN (nCantdias - nSabDom)
> Saludos