我们尝试解决一个问题:
大数学家高斯有个好习惯:无论如何都要记日记。
他的日记有个与众不同的地方,他从不注明年月日,而是用一个整数代替,比如:4210
后来人们知道,那个整数就是日期,它表示那一天是高斯出生后的第几天。这或许也是个好习惯,它时时刻刻提醒着主人:日子又过去一天,还有多少时光可以用于浪费呢?
高斯出生于:1777年4月30日。
在高斯发现的一个重要定理的日记上标注着:5343,因此可算出那天是:1791年12月15日。
高斯获得博士学位的那天日记上标着:8113
请你算出高斯获得博士学位的年月日。
这时候我们要尝试用python的datatime模块进行解决,而不是直接进行计算。
import datetime
t = datetime.datetime(year=1777, month=4, day=30)
time = t + datetime.timedelta(days=8113)
我们可以在datatime.datatime里修改任意时间,还可以进行秒与分的添加,我们尝试把time打印出来
print(time)
1799-07-17 00:00:00
这个就是我们要求的时间
当然我们还可以计算两个时间之间差的天数
import datetime
d1 = datetime.datetime(1777, 4, 30)
d2 = datetime.datetime(1799, 7, 17)
print((d2 - d1).days)
8113
这里我们就完成里计算
我们再看一道例题
曾有邪教称1999年12月31日是世界末日。当然该谣言已经不攻自破。
还有人称今后的某个世纪末的12月31日,如果是星期一则会....
有趣的是,任何一个世纪末的年份的12月31日都不可能是星期一!!
于是,“谣言制造商”又修改为星期日......
1999年的12月31日是星期五,请问:未来哪一个离我们最近的一个世纪末年(即xx99年)的12月31日正好是星期天(即星期日)?
请回答该年份(只写这个4位整数,不要写12月31等多余信息)
我们就需要计算下一个星期日,两个相差的天数减去二能够整除7就是这个年份,所以我们的代码如下:
import datetime
t1 = datetime.datetime(1999, 12, 31)
def timeDead():
for x in range(1900, 10000, 100):
year = x + 99
t2 = datetime.datetime(year, 12, 31)
t = (t2-t1).days
if (t-2) % 7 == 0:
return year
返回值就是我们要求的年份
原文链接:https://blog.csdn.net/qq_51718832/article/details/112263835