📅  最后修改于: 2023-12-03 15:04:39.958000             🧑  作者: Mango
在实际开发中,我们可能需要根据用户的出生日期计算出用户的年龄。使用Python可以轻松实现这个功能。
Python标准包中有日期模块datetime,它提供了一些用于处理日期和时间的类和函数。
from datetime import datetime
def calculate_age(date_of_birth):
today = datetime.today()
age = today.year - date_of_birth.year - ((today.month, today.day) < (date_of_birth.month, date_of_birth.day))
return age
该代码将出生日期作为参数传递给函数calculate_age,使用当前日期减去出生日期计算出用户的年龄,最后返回年龄。该函数可以简单地调用:
>>> date_of_birth = datetime.strptime('1990-05-14', '%Y-%m-%d')
>>> calculate_age(date_of_birth)
31
使用datetime可以比较容易地计算出年龄,但有时候日期格式不是很规范,比如日期字符串存在多种可能的格式。此时,我们可以使用第三方库dateutil来处理。
from dateutil.relativedelta import relativedelta
from dateutil.parser import parse
def calculate_age(date_of_birth):
today = datetime.today()
age = relativedelta(today, date_of_birth).years
return age
使用dateutil可以更加灵活地处理日期格式。例如,我们可以传递一个字符串到函数中:
>>> date_of_birth = parse('5/14/1990')
>>> calculate_age(date_of_birth)
31
这两种方法都可以很容易地计算出一个人的年龄。datetime模块适用于标准日期格式,而dateutil模块则更加适用于非标准日期格式。