我正在编写代码,同时检查 getTime1
查看字符串是否有效。如果字符串有效,我想将字符串更改为每次 getTime1
时向后退 30 分钟的时间。字符串有效。
示例:getTime1
字符串显示12:00AM
所以我想将其更改为向后 30 分钟以使其显示 11:30PM
。如果getTime1
字符串显示12:30PM
,我想将其更改为向后30分钟以使其显示12:00PM
.
这是代码:
getTime1 = self.getControl(344).getLabel()
if day_date >= 0 and day_date <= 6:
if getTime1 == '12:00AM':
self.getControl(344).setLabel('11:30PM')
elif getTime1 == '12:30AM':
self.getControl(344).setLabel('12:00AM')
elif getTime1 == '1:00AM':
self.getControl(344).setLabel('12:30AM')
elif getTime1 == '1:30AM':
self.getControl(344).setLabel('1:00AM')
elif getTime1 == '2:00AM':
self.getControl(344).setLabel('1:30AM')
elif getTime1 == '2:30AM':
self.getControl(344).setLabel('2:00AM')
elif getTime1 == '3:00AM':
self.getControl(344).setLabel('2:30AM')
elif getTime1 == '3:30AM':
self.getControl(344).setLabel('3:00AM')
elif getTime1 == '4:00AM':
self.getControl(344).setLabel('3:30AM')
elif getTime1 == '4:30AM':
self.getControl(344).setLabel('4:00AM')
elif getTime1 == '5:00AM':
self.getControl(344).setLabel('4:30AM')
elif getTime1 == '5:30AM':
self.getControl(344).setLabel('5:00AM')
elif getTime1 == '6:00AM':
self.getControl(344).setLabel('5:30AM')
elif getTime1 == '6:30AM':
self.getControl(344).setLabel('6:00AM')
elif getTime1 == '7:00AM':
self.getControl(344).setLabel('6:30AM')
elif getTime1 == '7:30AM':
self.getControl(344).setLabel('7:00AM')
elif getTime1 == '8:00AM':
self.getControl(344).setLabel('7:30AM')
elif getTime1 == '8:30AM':
self.getControl(344).setLabel('8:00AM')
elif getTime1 == '9:00AM':
self.getControl(344).setLabel('8:30AM')
elif getTime1 == '9:30AM':
self.getControl(344).setLabel('9:00AM')
elif getTime1 == '10:00AM':
self.getControl(344).setLabel('9:30AM')
elif getTime1 == '10:30AM':
self.getControl(344).setLabel('10:00AM')
elif getTime1 == '11:00AM':
self.getControl(344).setLabel('10:30AM')
elif getTime1 == '11:30AM':
self.getControl(344).setLabel('11:00AM')
elif getTime1 == '12:00PM':
self.getControl(344).setLabel('11:30AM')
elif getTime1 == '12:30PM':
self.getControl(344).setLabel('12:00PM')
elif getTime1 == '1:00PM':
self.getControl(344).setLabel('12:30PM')
elif getTime1 == '1:30PM':
self.getControl(344).setLabel('1:00PM')
elif getTime1 == '2:00PM':
self.getControl(344).setLabel('1:30PM')
elif getTime1 == '2:30PM':
self.getControl(344).setLabel('2:00PM')
elif getTime1 == '3:00PM':
self.getControl(344).setLabel('2:30PM')
elif getTime1 == '3:30PM':
self.getControl(344).setLabel('3:00PM')
elif getTime1 == '4:00PM':
self.getControl(344).setLabel('3:30PM')
elif getTime1 == '4:30PM':
self.getControl(344).setLabel('4:00PM')
elif getTime1 == '5:00PM':
self.getControl(344).setLabel('4:30PM')
elif getTime1 == '5:30PM':
self.getControl(344).setLabel('5:00PM')
elif getTime1 == '6:00PM':
self.getControl(344).setLabel('5:30PM')
elif getTime1 == '6:30PM':
self.getControl(344).setLabel('6:00PM')
elif getTime1 == '7:00PM':
self.getControl(344).setLabel('6:30PM')
elif getTime1 == '7:30PM':
self.getControl(344).setLabel('7:00PM')
elif getTime1 == '8:00PM':
self.getControl(344).setLabel('7:30PM')
elif getTime1 == '8:30PM':
self.getControl(344).setLabel('8:00PM')
elif getTime1 == '9:00PM':
self.getControl(344).setLabel('8:30PM')
elif getTime1 == '9:30PM':
self.getControl(344).setLabel('9:00PM')
elif getTime1 == '10:00PM':
self.getControl(344).setLabel('9:30PM')
elif getTime1 == '10:30PM':
self.getControl(344).setLabel('10:00PM')
elif getTime1 == '11:00PM':
self.getControl(344).setLabel('10:30PM')
elif getTime1 == '11:30PM':
self.getControl(344).setLabel('11:00PM')
但问题是 getTime1
字符串仅显示 12 小时时间。
我想知道是否有办法减少代码,使其能够使用 6-7 行而不是 97 行?
最佳答案
这个怎么样?
if getTime1 == '12:00AM':
self.getControl(344).setLabel('11:30PM')
elif getTime1 == '12:00PM':
self.getControl(344).setLabel('11:30AM')
else:
ind = getTime1.find(':')
if getTime1[ind+1:ind+3]=='30':
getTime1 = getTime1[:ind]+':00'+getTime1[-2:]
self.getControl(344).setLabel(getTime1)
else:
getTime1 = str(int(getTime1[:ind])-1)+':30'+getTime1[-2:]
self.getControl(344).setLabel(getTime1)
除了两种特殊情况外,该程序查找 :
,检查 30
是否存在,如果存在则保留当前小时并创建一个新字符串带有 AM
/PM
标签和小时,但使用 00
而不是 30
。如果结尾是 00
,它会将小时部分转换为 int
,减去 1,将其返回为字符串,在分钟中添加 30
部分并再次保留 AM
/PM
部分。
关于python - 为时代换弦,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46009599/