计算时间似乎不是一个容易的话题。当然,这只是我个人的理解。 Excel一直是我们从小接触的软件,小编也不好吹嘘自己Excel用得有多好。但是如果你用python,你就更有信心了。时间戳用于计算时间。我认为它并不逊色于excel。不信可以往下看。
从库存报告中识别出库存时间最长的零件并计算库存时间。
解决思路:
excel读取的日期的浮点数表示从1900年1月1日算起的天数。
Python的时间戳是指格林威治标准时间从1970年1月1日到当前时间的总秒数。
所以有两种思路:
1.库龄天数=(当前时间戳-表格时间戳)/60/60/24
将
excel的浮点数(42368.0)转化成时间数组格式(这步有点麻烦),再转化成时间戳。
然后也将
python读到的当前时间(2020-05-25 20:39:09.933949)转换成时间戳,然后再将秒数折算成天数。
2. 库龄天数=表格浮点数-当前日期转换成浮点数
将
python的当前时间数组格式-1899年12月31日的时间数组格式,得到的一个时间数组格式。这个差值转换成天数(datetime模块下 .days)。得到当前距离1900年1月1日的天数。然后减去表格的浮点数,得到库龄。
小编用的是第
2种解决方法是:
import xlrd
import xlwt
import datetime
#读取收货日期,计算库龄,找到最长库龄
wb = xlrd.open_workbook('库存报表20200520.xlsx')
sheet1 = wb.sheet_by_name('Sheet1')
#计算当前时间,转换成excel时间戳,excel时间戳其实时间1990年1月1日
date_start = datetime.datetime(1899, 12, 31)
date_now = datetime.datetime.now()
tod = date_now - date_start
#计算库龄,写入数列deltas
deltas = []
titlesrow = 1
nrows = sheet1.nrows-2
for i in range(nrows):
d = sheet1.cell(1+i, 22)
d = int(d.value)
delta = tod.days - d
deltas.append(delta)
# 新建一个表格,记录分析结果
wb = xlwt.Workbook()
sheet = wb.add_sheet('关键数据')
titles = ['最长库龄', '零件号', '零件名称', '数量']
for i in range(len(titles)):
sheet.write(0, i, titles[i])
# 找到库龄,写到表格
max = max(deltas)
sheet.write(1, 0, max)
# 库龄对应的零件号,数量
max_index = deltas.index(max)
max_part = sheet1.cell(max_index + 1, 3).value
max_name = sheet1.cell(max_index + 1, 4).value
max_num = sheet1.cell(max_index + 1, 5).value
sheet.write(1, 1, max_part)
sheet.write(1, 2, max_name)
sheet.write(1, 3, max_num)
wb.save('库存分析.xls')
有经常使用excel的小伙伴也可以试试python3时间戳的方法哦,试完后可以看看哪个软件的的常规方法更好用。
更多Python学习推荐:
。
本文为原创文章,版权归知行编程网所有,欢迎分享本文,转载请保留出处!
你可能也喜欢
- ♥ 你写的 Python 代码可以更“瘦”01/02
- ♥ 如何使用python析构函数11/27
- ♥ 如何在python3.4中安装openpyx11/05
- ♥ 深入理解python面向对象——类成员11/08
- ♥ 如何在python中安装anacoda12/12
- ♥ 为什么打印语句不能打印?08/31
内容反馈