Newer
Older
# coding=utf-8
from django.utils import timezone
from datetime import timedelta

Carlos Vega
committed
from web.algorithm import VerhoeffAlgorithm, LuhnAlgorithm
def is_valid_social_security_number(number):
if number is not None and number != '':
if len(number) != 13:
return False
if not number.isdigit():
return False
if not LuhnAlgorithm.is_luhn_valid(number[:12]):
return False
if not VerhoeffAlgorithm.is_valid_verhoeff(number[:11] + number[12]):
return False
return True

Carlos Vega
committed
today = timezone.now()
today_midnight = datetime.datetime(
today.year, today.month, today.day, tzinfo=today.tzinfo)
return today_midnight
def get_weekdays_in_period(fromdate, todate):
'''
fromdate and todate must be generated using datetime.date or datetime.datetime like:

Carlos Vega
committed
from datetime import date
fromdate = date(2010,1,1)
todate = date(2010,3,31)
fromdate = datetime.datetime(2018, 10, 3, 15, 00, 00)
todate = datetime.datetime.today()
but both dates must have the same format !
todate is not included in the range

Carlos Vega
committed
Weekdays are returned as isoweekdays like the form described in week_choices from constants.py (starting at 1)
'''
if todate < fromdate:
return set([])

Carlos Vega
committed
day_generator = (fromdate + timedelta(day)
for day in xrange((todate - fromdate).days))
weekdays = set([date.isoweekday() for date in day_generator])

Carlos Vega
committed
return weekdays