Ver Mensaje Individual
  #1 (permalink)  
Antiguo 31/01/2014, 16:19
Avatar de razpeitia
razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 1 mes
Puntos: 1360
Desafió 2014 - Semana 2

Problema
Fuiste contratado en una de esas empresas para programar con corbata, lo que significa que te encargas del desarrollo de aplicaciones empresariales. Las personas de RH (Recursos Humanos) necesitan calcular el numero de fin de semanas (Sábado y Domingo) entre 2 fechas, para hacer cálculos de nomina.

Entrada
Dos objetos de tipo datetime.date. La fecha de inicio y la de fin en ese orden.

Salida
El numero de sábados y domingos entre esas 2 fechas de manera inclusive.

Implementa tu solución en weekdays
Código Python:
Ver original
  1. from datetime import date
  2.  
  3. def weekdays(from_date, to_date):
  4.     return 0
  5.  
  6. if __name__ == '__main__':
  7.     from time import time
  8.     t1 = time()
  9.     assert weekdays(date(2013, 9, 18), date(2013, 9, 23)) == 2, "Error en test 1"
  10.     assert weekdays(date(2013, 1, 1), date(2013, 2, 1)) == 8, "Error en test 2"
  11.     assert weekdays(date(2013, 2, 2), date(2013, 2, 3)) == 2, "Error en test 3"
  12.     assert weekdays(date(1999, 1, 1), date(2000, 1, 1)) == 105, "Error en test 4"
  13.     assert weekdays(date(2004, 2, 1), date(2004, 2, 29)) == 9, "Error en test 5"
  14.     assert weekdays(date(1980, 8, 8), date(2012, 3, 3)) == 3295, "Error en test 6"
  15.     assert weekdays(date(2001, 2, 2), date(2007, 12, 31)) == 722, "Error en test 7"
  16.     assert weekdays(date(2002, 9, 9), date(2002, 9, 10)) == 0, "Error en test 8"
  17.     assert weekdays(date(2011, 1, 1), date(2012, 2, 1)) == 114, "Error en test 9"
  18.     assert weekdays(date(1995, 3, 2), date(1999, 2, 3)) == 410, "Error en test 10"
  19.     assert weekdays(date(1992, 2, 1), date(2000, 1, 1)) == 827, "Error en test 11"
  20.     assert weekdays(date(1998, 5, 1), date(2001, 2, 22)) == 294, "Error en test 12"
  21.     assert weekdays(date(2003, 8, 2), date(2005, 3, 3)) == 166, "Error en test 13"
  22.     assert weekdays(date(2010, 2, 5), date(2010, 12, 31)) == 94, "Error en test 14"
  23.     t2 = time()
  24.  
  25.     print("Tiempo de ejecucion %0.3fs" % (t2 - t1))
  26.     print("Todos los tests completados")