Skip to content

Instantly share code, notes, and snippets.

@arpruss
Created December 4, 2022 19:06
Show Gist options
  • Save arpruss/10e364904dfcc19b043a594232e0acde to your computer and use it in GitHub Desktop.
Save arpruss/10e364904dfcc19b043a594232e0acde to your computer and use it in GitHub Desktop.
lap time generator
import math
"""nPerSet = 10
nSets = 7
setTime = 8*60
restTime = 42
adjustRestSets = 4"""
laps = 67
perSet = 10
setTime = 8*60+18
totalTime = 60*60+5
goTime = 1. * laps * setTime // perSet
restTime = totalTime - goTime
if laps % perSet == 0:
preFinalSets = laps / perSet - 1
finalSetRemainder = perSet
else:
preFinalSets = laps // perSet
finalSetRemainder = laps % perSet
lastSetTime = goTime - setTime * preFinalSets
averageRest = 1. * restTime / preFinalSets
shorterRest = math.floor(averageRest)
longerRest = math.ceil(averageRest)
for i in range(0,preFinalSets+1):
if (preFinalSets - i) * longerRest + i * shorterRest <= restTime:
break
shorterCutoff = i
t = 0
n = 1
print("Length time: ",goTime/laps)
for i in range(preFinalSets+1):
if i < preFinalSets:
t1 = t + setTime
n1 = n + perSet
else:
t1 = t + lastSetTime
n1 = n + finalSetRemainder
t2 = t1 + (shorterRest if i < shorterCutoff else longerRest)
mid = t + setTime // 2
print( "%d-%d\t%02d:%02d-%02d:%02d\t%02d:%02d" % (
n,n1-1,t // 60, t % 60, t1 // 60, t1 % 60, mid // 60, mid % 60))
t = t2
n = n1
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment