3. Quotes

Dissenya les funcions següents i desa-les al mòdul quotes (fitxer quotes.py).

quotes.quants_anys(dia_i, mes_i, any_i, dia_f, mes_f, any_f)

Retorna el nombre d’anys complets transcorreguts des de la data inicial (dia_i/mes_i/any_i) fins a la data final (dia_f/mes_f/any_f).

Tots els paràmetres són nombres enters dins dels intervals vàlids per representar una data.

El nombre d’anys complets és la diferència d’anys si el mes i el dia de la data final són menors (en ordre lexicogràfic) que el mes i el dia de la data inicial. Cal sumar un any més al nombre d’anys complets si el mes i el dia de la data final són més grans o iguals que el mes i el dia de la data inicial.

Per exemple:


>>> a = quants_anys(1, 10, 2017, 3, 10, 2022)
>>> a
6

>>> a = quants_anys(1, 10, 2017, 1, 9, 2022)
>>> a
5

>>> a = quants_anys(3, 10, 2017, 3, 10, 2022)
>>> a
6

>>> a = quants_anys(3, 10, 2017, 2, 10, 2022)
>>> a
5

Trobaràs més tests al fitxer test-quotes-quants_anys.txt


quotes.extreu_nom_data(dades)

Retorna el nom i la data continguts a dades (str).

El nom i la data en dades estan separats pel caràcter ,. Pot haver-hi qualsevol combinació d’espais en blanc i tabuladors al començament de dades i immediatament abans de la coma. Després de la coma només hi haurà dígits i la barra per separar el dia, el mes i l’any de la data. Tant el dia com el mes poden tenir un o dos dígits. En cas que tinguin dos dígits, el de l’esquerra pot ser un zero. L’any sempre tindrà quatre dígits.

Cal retornar el nom sense espais en blanc ni tabuladors al començament i al final.

Cal retornar la data com tres enters: dia, mes i any.

Per exemple:


>>> n, d, m, a = extreu_nom_data(' \t  Anna   ,1/10/2017')
>>> n
'Anna'
>>> d
1
>>> m
10
>>> a
2017

>>> n, d, m, a = extreu_nom_data(' Josep Maria \t   ,27/1/2022')
>>> n, d, m, a
('Josep Maria', 27, 1, 2022)

>>> n, d, m, a = extreu_nom_data('Maria Rosa,05/02/2002')
>>> n, d, m, a
('Maria Rosa', 5, 2, 2002)

Trobaràs més tests al fitxer test-quotes-extreu_nom_data.txt


quotes.quota(dades, dia_f, mes_f, any_f, quota_anual)

Retorna el nom i la quota total que ha pagat un soci des de la data en què es va fer soci fins a la data dia_f/mes_f/any_f comptant que la quota anual és quota_anual (int).

Els paràmetres dia_f, mes_f i any_f són nombres enters dins dels intervals vàlids per representar una data.

El nom del soci i la data en què es va associar estan continguts a l’string dades. El paràmetre dades té el mateix format que en la funció extreu_nom_data().

La quota total és el producte del nombre d’anys complets per la quota anual. El nombre d’anys complets és el resultat de la funció quants_anys().

Per exemple:


>>> n, q = quota(' \t  Anna   ,1/10/2017', 2, 5, 2019, 100)
>>> n
'Anna'
>>> q
200

>>> n, q = quota(' Josep Maria \t   ,27/1/2019', 12, 2, 2021, 50)
>>> n
'Josep Maria'
>>> q
150

Trobaràs més tests al fitxer test-quotes-quota.txt