Dato il numero di secondi passati dalla mezzanotte, che ore sono adesso?
Versione 1
Utilizza gli operatori quoziente e resto della divisione intera
secondi = 86399 # 24*60*60-1, un secondo prima di mezzanotte
ss = secondi % 60 # 86399 % 60 = 59 secondi
minuti = secondi // 60 # 86399 // 60 = 1439 minuti <-- DA ELABORARE
mm = minuti % 60 # 1439 % 60 = 59 minuti
hh = minuti // 60 # 1439 // 60 = 23 ore
print(secondi, "s ->", hh, "h", mm, "m", ss, "s") # 86399 s -> 23 h 59 m 59 s
Versione 2
La variabile minuti è superflua
secondi = 86399
mm = secondi // 60
ss = secondi % 60
hh = mm // 60
mm = mm % 60
print(secondi, "s ->", hh, "h", mm, "m", ss, "s") # 86399 s -> 23 h 59 m 59 s
Versione 3
Alcuni linguaggi non hanno né le funzioni né gli operatori per il quoziente e/o per il resto della divisione intera.
Utilizza la divisione e la sottrazione.
import math
secondi = 86399
mm = secondi / 60 # 1439,98333...
mm = math.floor(mm) # 1439
ss = secondi-60*mm # 86399-60*1439 = ... = 59
hh = mm / 60 # 23,98333...
hh = math.floor(hh) # 23
mm = mm-60*hh # 1439-60*23 = ... = 59
print(secondi, "s ->", hh, "h", mm, "m", ss, "s")
Versione 4
Se vuoi visualizzare l’orario nella forma hh:mm:ss, con due cifre per ogni posizione, allora si rende necessario
- aggiungere eventuali zeri prima delle cifre singole
- utilizzare il parametro sep di print()
secondi = 10000
mm = secondi // 60
ss = secondi % 60
hh = mm // 60
mm = mm % 60 # 2:46:40
if(hh < 10): hh = "0"+str(hh) # hh <-- "0"+2 = "02"
if(mm < 10): mm = "0"+str(mm) # ---
if(ss < 10): ss = "0"+str(ss) # ---
print(hh, mm, ss, sep=":") # 02:46:40