为时代改变弦

2024-10-03 06:21:34 发布

您现在位置:Python中文网/ 问答频道 /正文

我在检查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行?你知道吗


Tags: and字符串代码self示例dateif时间
2条回答

这个怎么样?你知道吗

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部分。你知道吗

是的,有更简单的方法。您可能对内置的time module感兴趣。它允许您解析字符串并对其执行操作。你也可以这样做:

time = time.split(':')
hour = int(time[0])
minute = int(time[1][:2])

然后你就可以算出如何减去30分钟。对于验证,可以使用regex。你知道吗

相关问题 更多 >