| from datetime import date | |
| from dateutil.relativedelta import relativedelta | |
| from utils import format_result | |
| def compare_ages(name1, dob1, name2, dob2): | |
| """ | |
| Compare the ages of two people. | |
| Parameters | |
| ---------- | |
| name1 : str | |
| First person's name. | |
| dob1 : date | |
| First person's date of birth. | |
| name2 : str | |
| Second person's name. | |
| dob2 : date | |
| Second person's date of birth. | |
| Returns | |
| ------- | |
| dict | |
| Dictionary containing the comparison result. | |
| """ | |
| # Same birthday | |
| if dob1 == dob2: | |
| return { | |
| "name": name1, | |
| "other_name": name2, | |
| "same_age": True | |
| } | |
| # Determine who is older | |
| if dob1 < dob2: | |
| relation = "older" | |
| other_name = name2 | |
| difference = relativedelta(dob2, dob1) | |
| else: | |
| relation = "younger" | |
| other_name = name2 | |
| difference = relativedelta(dob1, dob2) | |
| return { | |
| "name": name1, | |
| "other_name": other_name, | |
| "same_age": False, | |
| "relation": relation, | |
| "years": difference.years, | |
| "months": difference.months, | |
| "days": difference.days | |
| } | |