import datetime
def data_a_llista(data) :
    return [data.day, data.month, data.year]

def data_a_string(data) :
    return '{:02d}/{:02d}/{:04d}'.format(data.day, data.month, data.year)

def string_a_data(s) :
    valors = s.split('/')
    day, month, year = int(valors[0]), int(valors[1]), int(valors[2])
    return datetime.date(year, month, day)

def data_dif(data1, data2) :
    return (data2-data1).days

def tempus_fugit (data1, data2):
    return data_dif(string_a_data(data1), string_a_data(data2))
    
def temps_dif(inst1, inst2):
    avui = datetime.datetime.today()
    s1 = datetime.datetime.combine(avui, inst1)
    s2 = datetime.datetime.combine(avui, inst2)
    return(s2-s1).seconds

def cap_de_setmana_1(itdies):
    dset = {5: 'ds.', 6: 'dg.'}
    it1 = filter(lambda dia: dia.weekday() in [5, 6], itdies)
    return map(lambda dia: (str(dia), dset[dia.weekday()]), it1)

def cap_de_setmana_2(itdies):
    for dia in itdies:
        if dia.weekday() == 5 or dia.weekday() == 6:
            if dia.weekday() == 5:
                ds = 'ds.'
            else:
                ds = 'dg.'
            yield (str(dia), ds)

# cap_de_setmana = cap_de_setmana_1
cap_de_setmana = cap_de_setmana_2
