2017-09-10 2 views
0

Ich brauche Hilfe mit meinem Snippet. Ich habe die Saiten bekam, die von 0 bis 24.Konvertiere die Strings in 12 Stunden Format

reichen Wenn ich die Zeichenfolge, die 13 zeigen, ich möchte es an der Zeit bis 12 Stunden konvertieren, um die Zeichenfolge zu machen zeigen 1 statt 13.

for program_end_time in self.program_end_time: 
    program_stop_hours = str(program_end_time.hour) 

    #Now I would like to convert it to 12 hours instead of 24 

Der Grund, warum ich von 24 Stunden bis 12 Stunden konvertieren wollen, ist, weil ich den Code statt diese reduzieren wollen:

if program_stop_hours == "0": 
    program_stop_hours = "12" 
    program_AM_PM = 'AM' 
elif program_stop_hours == "1": 
    program_stop_hours = "1" 
    program_AM_PM = 'AM' 
elif program_stop_hours == "2": 
    program_stop_hours = "2" 
    program_AM_PM = 'AM' 
elif program_stop_hours == "3": 
    program_stop_hours = "3" 
    program_AM_PM = 'AM' 
elif program_stop_hours == "4": 
    program_stop_hours = "4" 
    program_AM_PM = 'AM' 
elif program_stop_hours == "5": 
    program_stop_hours = "5" 
    program_AM_PM = 'AM' 
elif program_stop_hours == "6": 
    program_stop_hours = "6" 
    program_AM_PM = 'AM' 
elif program_stop_hours == "7": 
    program_stop_hours = "7" 
    program_AM_PM = 'AM' 
elif program_stop_hours == "8": 
    program_stop_hours = "8" 
    program_AM_PM = 'AM' 
elif program_stop_hours == "9": 
    program_stop_hours = "9" 
    program_AM_PM = 'AM' 
elif program_stop_hours == "10": 
    program_stop_hours = "10" 
    program_AM_PM = 'AM' 
elif program_stop_hours == "11": 
    program_stop_hours = "11" 
    program_AM_PM = 'AM' 
elif program_stop_hours == "12": 
    program_stop_hours = "12" 
    program_AM_PM = 'PM' 
elif program_stop_hours == "13": 
    program_stop_hours = "1" 
    program_AM_PM = 'PM' 
elif program_stop_hours == "14": 
    program_stop_hours = "2" 
    program_AM_PM = 'PM' 
elif program_stop_hours == "15": 
    program_stop_hours = "3" 
    program_AM_PM = 'PM' 
elif program_stop_hours == "16": 
    program_stop_hours = "4" 
    program_AM_PM = 'PM' 
elif program_stop_hours == "17": 
    program_stop_hours = "5" 
    program_AM_PM = 'PM' 
elif program_stop_hours == "18": 
    program_stop_hours = "6" 
    program_AM_PM = 'PM' 
elif program_stop_hours == "19": 
    program_stop_hours = "7" 
    program_AM_PM = 'PM' 
elif program_stop_hours == "20": 
    program_stop_hours = "8" 
    program_AM_PM = 'PM' 
elif program_stop_hours == "21": 
    program_stop_hours = "9" 
    program_AM_PM = 'PM' 
elif program_stop_hours == "22": 
    program_stop_hours = "10" 
    program_AM_PM = 'PM' 
elif program_stop_hours == "23": 
    program_stop_hours = "11" 
    program_AM_PM = 'PM' 

Ich will es machen, etwas zu zeigen, wie folgt aus:

if program_stop_hours >= 0 and if program_stop_hours <= 12: 
    program_stop_hours = str(program_stop_hours, convert_to_12_hours) 
    program_AM_PM = 'AM' 
else: 
    program_stop_hours = str(program_stop_hours, convert_to_12_hours) 
    program_AM_PM = 'PM' 

Können Sie mir bitte ein Beispiel zeigen, wie ich das in Python machen könnte?

Antwort

3

Sie müssen wirklich nur zwei Fälle testen: program_stop_hours kleiner oder gleich 12 oder es ist mehr als 12. Sie es wie folgt tun:

program_stop_hours = input("Enter program stop hours: ") 
if program_stop_hours >= 0 and program_stop_hours <= 12: 
    program_stop_hours = str(program_stop_hours) 
    program_AM_PM = 'AM' 
else: 
    program_stop_hours = str(program_stop_hours - 12) 
    program_AM_PM = 'PM' 

print program_stop_hours 
print program_AM_PM 

Achten Sie darauf, die verschiedenen Bedingungen wie program_stop_hours richtig zu behandeln ist: weniger als Null; genau 12 (stellen Sie sicher, dass es in diesem Fall das tut, was Sie vorhaben); mehr als 24 (Sie testen nicht dafür); und genau 24 (um sicherzustellen, dass es den Fall so behandelt, wie Sie es beabsichtigen). Kurz

+0

Vielen Dank, das ist die Antwort ist, was ich suche. –

0

das tun, werden Sie haben es ein bisschen mod Ihre formattig Notwendigkeit zu passen, aber es ist

>>> def convert24(x): 
    am = "AM" if x < 12 else "PM" 
    r = 12 if not x%12 else x%12 
    return "{:0>2d}:00 {}".format(r, am) 

>>> convert24(0) 
'12:00 AM' 
>>> convert24(13) 
'01:00 PM' 
>>> convert24(23) 
'11:00 PM' 
Verwandte Themen