课堂练习6:日期差异计算器

编写一个函数,接收两个日期参数,格式为"%Y%m%d",例如"20240920",为第二个日期参数提供一个默认值,这个默认值为今天的日期,然后返回两个日期相差的天数。

 

Python 的 datetime 模块用于处理日期和时间。以下是datetime 模块一些方法的详细介绍:

  1. now() 方法:这是 datetime 类的一个方法,用于获取当前的日期和时间。例如:

    from datetime import datetime
    print(datetime.now())
    

    这将打印出当前的日期和时间,如 2024-09-25 12:22:17.123456

  2. date() 方法:这是 datetime 类的一个方法,用于获取一个 datetime 对象的日期部分。例如:

    from datetime import datetime
    dt = datetime.now()
    print(dt.date())
    

    这将打印出当前日期,如 2024-09-25

  3. strptime() 方法:这是 datetime 类的一个方法,用于将一个字符串解析为 datetime 对象。这个方法需要两个参数:日期/时间的字符串,以及对应的格式字符串。例如:

    from datetime import datetime
    dt = datetime.strptime("2024-09-25", "%Y-%m-%d")
    print(dt)
    

    这将打印出 2024-09-25 00:00:00,表示将字符串 "2024-09-25" 解析为日期。

  4. days 属性:这是 timedelta 类的一个属性,用于获取一个 timedelta 对象中的天数部分。timedelta 对象表示两个日期或时间之间的差。例如:

    from datetime import datetime, timedelta
    dt1 = datetime.strptime("2024-09-25", "%Y-%m-%d")
    dt2 = datetime.strptime("2024-10-25", "%Y-%m-%d")
    delta = dt2 - dt1
    print(delta.days)
    

    这将打印出 30,表示 "2024-09-25" 和 "2024-10-25" 之间相差 30 天。

注意:datetime 类的 now() 和 strptime() 方法,以及 timedelta 类的 days 属性,都需要通过 datetime 模块来访问。而 date() 方法则是 datetime 类的实例方法,需要通过 datetime 对象来访问。

 

提示:

1、导入datetime模块

from datetime import datetime

2、使用datetime的.now().date()方法获取今天的日期

3、使用.strftime("%Y%m%d")方法对获取的日期进行格式化

today_date = datetime.now().date().strftime("%Y%m%d")

4、将字符串日期转换为datetime的日期对象

d1 = datetime.strptime(date1, "%Y-%m-%d")
d2 = datetime.strptime(date2, "%Y-%m-%d")

5、计算日期差,使用abs获取日期差的绝对值

delta = abs(d1-d2)

difference = delta.days