python - How to change the string when the string is present -
i need code. have trouble changing strings.
i checking strings if variable gettime3 have string 30 want replace 00. on code, find string 30 replace 0030 wrong. should 00.
here code:
if gettime3 == '11:30pm': self.getcontrol(346).setlabel('12:00am') elif gettime3 == '12:30pm': self.getcontrol(346).setlabel('1:00am') else: ind = gettime3.find(':') if gettime3[ind+1:ind+3]=='30': gettime3 = gettime3[:ind]+':00'+gettime3[+2:] self.getcontrol(346).setlabel(gettime3) else: gettime3 = str(int(gettime3[:ind])+1)+':30'+gettime3[+2:] self.getcontrol(346).setlabel(gettime3) what expect 2 special cases, when program finds :, check if 30 present change current hour next hour , make new string am/pm label, example: change 8 9 , replace 30 00 make show 9:00pm. if ending 00 want change 00 30 instead. want add 30 in minute section , again preserves am/pm part. if gettime3 have string 11:30am want change 12:00pm.
can please me how fix 0030 make show 00 instead , add next hour?
with python, slice x[a:b] in slice starting @ a (inclusive), , finishing @ b (exclusive).
so: gettime3[:ind] slice 0 ind exclusive, hours without ":".
and indexes absolute index, not relative. gettime3[+2:] same gettime3[2:], correspond substring starting @ index 2.
what want is:
gettime3 = gettime3[:ind] + ':00' + gettime3[ind + 3:] # or gettime3 = gettime3[:ind + 1] + '00' + gettime3[ind + 3:] example:
gettime3 = '08:30pm' ind = gettime3.index(":") gettime3[:ind] + ':00' + gettime3[ind + 3:] # -> '08:00pm' edit
if want calculation on time, can use datetime module.
time_fmt = '%i:%m%p' is format used represent time '09:30pm', where:
- %i hour (12-hour clock) zero-padded decimal number.
- %m minute zero-padded decimal number.
- %p locale’s equivalent of either or pm.
how add 30 min:
import datetime time3 = '09:30pm' dt3 = datetime.datetime.strptime(time3, time_fmt) dt3 += datetime.timedelta(minutes=30) time3 = dt3.strftime(time_fmt) if want set minutes 0, can do:
dt3 = datetime.datetime.strptime(time3, time_fmt) dt3 = d3.replace(minute=0)
Comments
Post a Comment