Advertisement
linuxoid

z2

Nov 16th, 2022
896
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.51 KB | None | 0 0
  1. import xlsxwriter
  2. from openpyxl import load_workbook
  3. import random
  4. from datetime import datetime
  5. from datetime import timedelta
  6.  
  7.  
  8. workbook = xlsxwriter.Workbook('z2.xlsx')
  9. worksheet = workbook.add_worksheet('z2')
  10. # заголовки
  11. dates = (
  12.     ['Номер по порядку', 'Дата', 'Время начала разговора', 'Время конца разговора', 'Время разговора', 'День недели',
  13.      'Час суток', 'Стоимость разговора', 'Тариф'],)
  14. for i, (item, d, ts, te, tr, day, hd, ps, tarif) in enumerate(dates, start=1):
  15.     worksheet.write(f'A{i}', item)
  16.     worksheet.write(f'B{i}', d)
  17.     worksheet.write(f'C{i}', ts)
  18.     worksheet.write(f'D{i}', te)
  19.     worksheet.write(f'E{i}', tr)
  20.     worksheet.write(f'F{i}', day)
  21.     worksheet.write(f'G{i}', hd)
  22.     worksheet.write(f'H{i}', ps)
  23.     worksheet.write(f'I{i}', tarif)
  24. workbook.close()
  25. # данные
  26. wb = load_workbook('z2.xlsx')
  27. worksheet = wb['z2']
  28. ws = wb.active
  29. for i in range(2, 22):
  30.     item = i - 1
  31.     ws[f'A{i}'] = item
  32.     x = datetime(2022, 1, i-1).strftime("%d.%m.%Y")
  33.     ws[f'B{i}'] = x
  34.     starttime = timedelta(hours=i, minutes=30, seconds=0)
  35.     ws[f'C{i}'] = starttime
  36.     randmin = random.randint(0, 15)
  37.     randsec = random.randint(0, 15)
  38.     stopttime = timedelta(hours=i+0.5, minutes=i+randmin, seconds=randsec)
  39.     ws[f'D{i}'] = stopttime
  40.     wb.save('z2.xlsx')
  41. for i in range(2, 22):
  42.     starttime = ws[f'C{i}'].value
  43.     stopttime = ws[f'D{i}'].value
  44.     allsays = stopttime - starttime
  45.     ws[f'E{i}'] = allsays
  46.     minutisays = allsays/60
  47.     minutisays = str(minutisays).replace('0:00:', '')
  48.     dayweeks = ws[f'B{i}'].value
  49.     dayweeks = datetime.strptime(dayweeks, "%d.%m.%Y").date()
  50.     dayweeks = dayweeks.strftime("%A")
  51.     ws[f'F{i}'] = dayweeks
  52.     hours = ws[f'C{i}'].value
  53.     hours = datetime.strptime(str(hours), "%H:%M:%S")
  54.     hours = hours.strftime("%H")
  55.     ws[f'G{i}'] = hours
  56.     if dayweeks == 'Saturday' or dayweeks == 'Sunday':
  57.         vihtarif = float(minutisays)*0.1
  58.         ws[f'H{i}'] = vihtarif
  59.         ws[f'I{i}'] = "выходной тариф"
  60.     else:
  61.         if int(hours) >= 8 and int(hours) <= 21:
  62.             vihtarif = float(minutisays) * 0.5
  63.             ws[f'H{i}'] = vihtarif
  64.             ws[f'I{i}'] = "Будни"
  65.         else:
  66.             vihtarif = float(minutisays)* 0.1
  67.             ws[f'H{i}'] = vihtarif
  68.             ws[f'I{i}'] = "Ночной тариф"
  69.     wb.save('z2.xlsx')
  70.     wb.close()
  71.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement