def getMyTime(timeString):
myTime = {'day': None, 'hour': None, 'minute': None, 'second': None}
positions = []
for item in timeString:
if item.isalpha():
positions.append([timeString.find(item), item])
for i in range(len(positions)):
value = None
if i == 0:
value = timeString[0:positions[i][0]]
else:
value = timeString[positions[i-1][0]+1:positions[i][0]]
value = 0 if len(value.lstrip('0')) == 0 else int(value.lstrip('0'))
if positions[i][1] == 'd':
myTime['day'] = value
elif positions[i][1] == 'h':
myTime['hour'] = value
elif positions[i][1] == 'm':
myTime['minute'] = value
elif positions[i][1] == 's':
myTime['second'] = value
else:
pass
return myTime
timeStrings = [
'10d',
'10d020h',
'10d20h30m',
'10d20h30m40s',
'010d0020h00030m00040s',
'00d00h00m00s',
'00s00m00h00d',
'0040s0030m0020h0010d',
'40s30m20h10d',
'30m20h10d',
'20h10d',
'10d',
]
for timeString in timeStrings:
print(getMyTime(timeString))
Output...
{'day': 10, 'hour': None, 'minute': None, 'second': None}
{'day': 10, 'hour': 20, 'minute': None, 'second': None}
{'day': 10, 'hour': 20, 'minute': 30, 'second': None}
{'day': 10, 'hour': 20, 'minute': 30, 'second': 40}
{'day': 10, 'hour': 20, 'minute': 30, 'second': 40}
{'day': 0, 'hour': 0, 'minute': 0, 'second': 0}
{'day': 0, 'hour': 0, 'minute': 0, 'second': 0}
{'day': 10, 'hour': 20, 'minute': 30, 'second': 40}
{'day': 10, 'hour': 20, 'minute': 30, 'second': 40}
{'day': 10, 'hour': 20, 'minute': 30, 'second': None}
{'day': 10, 'hour': 20, 'minute': None, 'second': None}
{'day': 10, 'hour': None, 'minute': None, 'second': None}