[pyar] Contar dias habiles

Federico Jurio fdjurio en gmail.com
Jue Mar 1 00:38:11 -03 2018


Podés usar el módulo rrule
<http://dateutil.readthedocs.io/en/stable/rrule.html>
Te dejo un snippet que resuelve la cantidad de días hábiles considerando
los Sábados para el mes de Enero 2018.

import datetime
from dateutil import rrule

start_date = datetime.date(2018, 1, 1)
end_date = datetime.date(2018, 1, 31)

dates = rrule.rruleset()

# start_date y end_date estan incluidos en dates
dates.rrule(
    rrule.rrule(
        rrule.DAILY,
        dtstart=start_date,
        until=end_date
    )
)

# Excluimos los dias
dates.exrule(
    rrule.rrule(
        rrule.DAILY,
        byweekday=rrule.SU,
        # Ejemplo si quisieramos excluir Sabados y Domingos
        # byweekday=(rrule.SA, rrule.SU),
        dtstart=start_date
    )
)

dates.rrule(
    rrule.rrule(rrule.DAILY, dtstart=start_date, until=end_date)
)

print(len(list(dates)))

Saludos

2018-02-28 21:32 GMT-03:00 Javier Pepe <javierpepe en gmail.com>:

> Luciano
>
> Posiblemente la funcion este tomando los dias dentro del intervalo de
> fechas, podrias sumar un dia a enddate y despues realizar la cuenta.
>
> Saludos
>
> El 28 de febrero de 2018, 20:32, Luciano Bovio<omicronvt en gmail.com>
> escribió:
>
>> Hola, estoy tratando de encontrar una manera de contar los días hábiles
>> de cada mes, puede ser el actual o pasado. Es algo genérico así que son
>> todos los días menos los domingos.
>> Además tengo que calcular un porcentaje de días transcurridos/sobre días
>> hábiles.
>>
>> Lo más simple que encontré es con numpy:
>>
>> diashabiles=numpy.busday_count(desde,hasta,weekmask='1111110')
>>
>> Funciona perfecto excepto que no me cuenta el día de 'fecha
>> hasta'(enddates).....
>>
>> Ejemplo:
>> dias=numpy.busday_count(datetime.date(2018,02,01),datetime.d
>> ate.today(),weekmask='1111110')
>> da como resultado 23 y necesitaría 24
>>
>>
>> Lo que se me ocurre es sumarle un día a 'fecha hasta' lo cual funciona
>> siempre y cuando la 'fecha hasta' no sea domingo, para lo cual tendría que
>> chequear si 'fecha hasta' es domingo y restar un día
>>
>> Que recomiendan ?
>>
>> Saludos Luciano
>> _______________________________________________
>> Lista de Correo de PyAr - Python Argentina - pyar en python.org.ar
>> Sitio web: http://www.python.org.ar/
>>
>> Para administrar la lista (o desuscribirse) entrar a
>> http://listas.python.org.ar/listinfo/pyar
>>
>> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
>> Argentina - http://www.usla.org.ar
>
>
>
> _______________________________________________
> Lista de Correo de PyAr - Python Argentina - pyar en python.org.ar
> Sitio web: http://www.python.org.ar/
>
> Para administrar la lista (o desuscribirse) entrar a
> http://listas.python.org.ar/listinfo/pyar
>
> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
> Argentina - http://www.usla.org.ar
>



-- 

*Federico Daniel Jurio*
Analista de Sistemas
TE: +54 9 11 6428 7919
Skype: fdjurio

[image: LinkedIn] <https://www.linkedin.com/in/juriofederico> [image:
GitHub] <https://github.com/FedericoJurio> [image: Facebook]
<https://www.facebook.com/juriofederico>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20180301/2e30eb11/attachment.html>


Más información sobre la lista de distribución pyar