# time模块实现, 也是自带的
网站建设哪家好,找创新互联建站!专注于网页设计、网站建设、微信开发、微信小程序、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了安宁免费建站欢迎大家使用!
# 字符串不好计算~但是时间戳是固定的呀...
# 计算结果中, 假定今天24日, 输入24, 输出0天, 输入25, 输出-1天
import time
def f(tm):
stamp = time.mktime(time.strptime(tm, "%Y%m%d"))
diff = int((time.time() - stamp) // 86400)
if diff = 180:
return {tm: str(diff)}
else:
d = {}
while diff 180:
d[tm] = 180
stamp += 180 * 86400
diff = int((time.time() - stamp) // 86400)
# 注意这里time.gmtime()返回的是0时区日期, 需要处理时区问题
tm = time.strftime("%Y%m%d", time.gmtime(stamp - time.timezone))
else:
d[tm] = str(diff)
return d
if __name__ == '__main__':
tm = '20160325'
print(f(tm))
tm = '20171015'
print(f(tm))
# 结果输出, 注意: 字典是没有固定顺序的
'''
{'20160921': 180, '20170320': 180, '20170916': '38', '20160325': 180}
{'20171015': '9'}
'''
python日期加减
Python 中日期类型是datetime.date
日期加减的结果,以及可以对日期相加减的类型是datetime.timedelta
timedelta = date1 - date2
date1 = date2 + timedelta
datetime.timedelta(days, seconds, microseconds)
d1 = datetime.date.today()
加一天:
d2 = d1 + datetime.timedelta(1)
减一天:
d2 = d1 + datetime.timedelta(-1)
python 如何计算时间差
Python Tip]如何计算时间差
Q:如何方便的计算两个时间的差,如两个时间相差几天,几小时等
A:使用datetime模块可以很方便的解决这个问题,举例如下:
import datetime
d1 = datetime.datetime(2005, 2, 16)
d2 = datetime.datetime(2004, 12, 31)
(d1 – d2).days
47
上例演示了计算两个日期相差天数的计算。
import datetime
starttime = datetime.datetime.now()
#long running
endtime = datetime.datetime.now()
print (endtime – starttime).seconds
上例演示了计算运行时间的例子,以秒进行显示。
d1 = datetime.datetime.now()
d3 = d1 + datetime.timedelta(hours=10)
d3.ctime()
上例演示了计算当前时间向后10小时的时间。
其本上常用的类有:datetime和timedelta两个。它们之间可以相互加减。每个类都有一些方法和属性可以查看具体的值,如datetime可以查看:天数(day),小时数(hour),星期几(weekday())等;timedelta可以查看:天数(days),秒数(seconds)等。
endings就是一个字符串list,17 * ['th']的意思就是:给这个数据添加17个'th'字符串;例如
a=3*['a']和a=['a','a','a']是一样的。
剩下的就是英文问题了,st第一天,或者是第21天等等
from datetime import datetime
import math
def last_xmonth(x):
now = datetime.now()
if x==0:
return now
else:
a = x%12 # 取余数 前a个月 限制0a12
b = math.ceil(x/12)+1 if x%12==0 else math.ceil(x/12) # 前b-1年
if xnow.month:
date1 = datetime.strftime(datetime(now.year-b+1,now.month-a,now.day),'%Y-%m-%d')
else :
date1 = datetime.strftime(datetime(now.year-b,now.month+12-a,now.day),'%Y-%m-%d')
return date1