[pyar] Contar dias habiles

Augusto Tononi adtononi en gmail.com
Jue Mar 1 08:16:02 -03 2018


No te sirve iterar sobre  el mes y poner not in ['SA', 'SU' ]?
Después usas len y listo
El mar. 1, 2018 7:58 AM, "Sofi Denner" <sofi.denner en gmail.com> escribió:

> El módulo calendar te puede servir para lo que estas necesitando.
>
> calendar.monthcalendar(year, month) te devuelve una matriz donde cada fila
> es una semana (colocando 0 en los días de la semana que no están incluidos
> en el mes). Con esta función podrías contar la cantidad de domingos que
> tiene el mes.
>
> calendar.monthrange(year, month) te devuelve una tupla, cuyo segundo
> elemento es la cantidad de días del mes. Restando la cantidad de días - la
> cantidad de domingos obtendrías los días hábiles.
>
>
> import calendar
>
> sundays = len([1 for week in calendar.monthcalendar(2018, 2) if week[6] !=
> 0])
> bus_days = calendar.monthcalendar(2018, 2)[1] - sundays
>
>
>
> Espero te sirva.
>
> Saludos!
>
> El jue., 1 de mar. de 2018 a la(s) 00:38, Federico Jurio <
> fdjurio en gmail.com> escribió:
>
>> 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.date.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>
>> _______________________________________________
>> 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
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20180301/617789ed/attachment.html>


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