如何通过读取文本文件中提到的日期计算到今天的总天数?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何通过读取文本文件中提到的日期计算到今天的总天数?相关的知识,希望对你有一定的参考价值。

我有一个文本文件,其中包含的数据很少,如下所示。


2018-07-20

2018-08-13

2018-07-30

2018-07-18

2018-07-24

2018-08-13

2018-07-20

2018-08-10

我需要找到从提到的日期到今天的天数,此python或shell脚本将按如下所示输入文件f = open(“ / root / interview / date1.txt”,“ r”)。read ().split(“ \ n”)&用系统时间进行计算。预期的输出可能类似于300天差异。我对python或shell脚本不好,请有人帮忙。

答案

这里是代码:

import datetime


dates = []

# Reading dates from dates.txt and
# removing all spaces in the head and tail of the string
with open('dates.txt', 'r') as f:
    dates = [i.strip() for i in f.readlines()]

# now dates list contains a bunch of strings like "2018-07-24"

today = datetime.datetime.now().date()

for date_str in dates:
    year, month, day = list(map(int, date_str.split('-')))
    # year, month and day are now integers
    # year = 2018
    # month = 7
    # day = 24

    date = datetime.date(year, month, day)
    days_passed = (today - date).days
    print(f'days_passed days passed since date_str')

输出为:

641 days passed since 2018-07-20
617 days passed since 2018-08-13
631 days passed since 2018-07-30
643 days passed since 2018-07-18
637 days passed since 2018-07-24
617 days passed since 2018-08-13
641 days passed since 2018-07-20
620 days passed since 2018-08-10

它使用datetime模块,该模块具有处理日期和时间的所有功能。

另一答案

也许您可以尝试:

import datetime
d1 = datetime.datetime(2018,10,31)
d2 = datetime.datetime(2019,2,2)
interval = d2 - d1
days = interval.days

我尝试使用Python3.7.3,此代码具有良好的性能。您需要支付两个地方的费用。首先,请勿在月或日之前使用额外的``0'',因为使用datetime(2019,02,02)是错误的。其次,使用名称“ interval”,但不要使用其他名称

以上是关于如何通过读取文本文件中提到的日期计算到今天的总天数?的主要内容,如果未能解决你的问题,请参考以下文章

求Excel日期天数计算公式

mysql: 如何计算指定日期到当前日期之间的天数

如何在 xslt 中计算天数

db2 计算间隔天数

在EXCEL中,今天到下个月今天的天数怎么计算,求教了

在html中计算两个输入类型=“日期”之间的天数[重复]