📅  最后修改于: 2023-12-03 15:38:35.477000             🧑  作者: Mango
在一些应用中,我们需要从出生日期中计算出年龄。在Python中,可以用 datetime 模块和 dateutil 库来实现。
代码片段:
from datetime import datetime
def calculate_age(birth_date):
today = datetime.today()
birth_date = datetime.strptime(birth_date, "%Y-%m-%d")
age = today.year - birth_date.year
if today.month < birth_date.month or (today.month == birth_date.month and today.day < birth_date.day):
age -= 1
return age
解释:
calculate_age(birth_date)
,传入参数为出生日期,格式为字符串,例如:"1990-01-01"。today
,通过 datetime.today()
方法获取当天的日期和时间。datetime.strptime()
方法将出生日期 birth_date
转换为 datetime 类型,其中 %Y-%m-%d
表示按照 “年-月-日” 的格式解析字符串。age
,通过 today.year
和 birth_date.year
计算年龄差,首先计算当前年份 today.year
与出生年份 birth_date.year
的差值。age
。代码片段:
from datetime import datetime
from dateutil.relativedelta import relativedelta
def calculate_age(birth_date):
today = datetime.today()
birth_date = datetime.strptime(birth_date, "%Y-%m-%d")
age = relativedelta(today, birth_date).years
return age
解释:
relativedelta
方法。calculate_age(birth_date)
,传入参数为出生日期,格式为字符串,例如:"1990-01-01"。today
,通过 datetime.today()
方法获取当天的日期和时间。datetime.strptime()
方法将出生日期 birth_date
转换为 datetime 类型,其中 %Y-%m-%d
表示按照 “年-月-日” 的格式解析字符串。relativedelta()
方法计算年龄差值。relativedelta(today, birth_date).years
获取年龄。以上两种方法都可以从出生日期中计算出年龄,相对而言,dateutil 库中的 relativedelta
方法更加简便易用。