Python: 获取日期字符串经过的年份数

3 投票
2 回答
3448 浏览
提问于 2025-04-16 13:38

假设我有一个字符串,比如 '3/6/2011',这个格式是月/日/年,而现在的日期是 3/13/2011(比这个日期晚了7天),我该怎么在Python中计算从那个时间到现在已经过去了多少年(7天除以365天,结果是 0.0191780821917808)呢?

需要注意的是,我希望能够处理任何输入的日期。不过格式就固定成上面的这种。

2 个回答

1

在编程中,有时候我们需要让程序在特定的条件下执行某些操作。比如说,我们可能希望在用户输入错误时,程序能够给出提示。这就需要用到“条件语句”。条件语句就像是一个分岔路口,程序会根据不同的条件选择不同的路径来执行。

另外,程序中还会用到“循环”。循环就像是一个重复的动作,比如说我们想要让程序重复执行某个任务多次,直到满足某个条件为止。这样可以节省时间和代码,让程序更加高效。

还有一个重要的概念是“函数”。函数可以理解为一个小工具,它可以完成特定的任务。我们只需要调用这个工具,就可以快速完成工作,而不需要每次都写一模一样的代码。

总之,编程就像是在给计算机下指令,我们通过条件、循环和函数等工具,让计算机按照我们的想法去工作。

>>> import datetime
>>> datestring = "3/6/2011"
>>> (datetime.date.today() - datetime.datetime.strptime(datestring, "%m/%d/%Y").date()).days / 365.0
0.019178082191780823
11

你可以通过减去两个datetime对象来得到timedelta,这样你就可以用很多有趣的方法来处理时间差。

>>> import datetime
>>> before = datetime.datetime.strptime('3/6/2011','%m/%d/%Y')
>>> now = datetime.datetime.now()
>>> type(now-before)
<type 'datetime.timedelta'>
>>> (now-before).days
7
>>> float((now-before).days)/365
0.019178082191780823

编辑:哇,谁能想到这个看似简单的问题背后竟然有这么多深意呢。可以看看在这个问题上得票最多的答案。处理闰年是个“难”题。(感谢@kriegar)

撰写回答