Ver Mensaje Individual
  #1 (permalink)  
Antiguo 09/01/2013, 16:18
Avatar de camilo1012
camilo1012
 
Fecha de Ingreso: febrero-2011
Mensajes: 46
Antigüedad: 13 años, 9 meses
Puntos: 1
Pregunta Funciones de reloj

tengo en siguiente problema con este programa, se supone que debería entregar estos resultados:

Código:
Sumar y restar dos instantes de tiempo
Primer instante  (HHMMSS) ? 104530
Segundo instante (HHMMSS) ?  013040
Suma  = 12:16:10
Mayor = 10:45:30
Menor = 01:30:40
Resta = 09:14:50
pero el problema es que la hora me la entrega como cero pensado que la hora del segundo dígito es 01.

el programa es este:
Código Python:
Ver original
  1. print "Sumar y restar dos instantes de tiempo"
  2. d1=int(input("Primer instante (HMMSS) ?"))
  3. d2=int(input("Segundo instante (HMMSS) ?"))
  4.  
  5.  
  6. def horas(x):
  7.     return x/10000
  8.  
  9. def segundos(x):
  10.     return x - (x/100)*100
  11.  
  12. def minutos(x):
  13.     return (x/100) - (x/10000)*100
  14.  
  15. def totalSegundos(x):
  16.     s= segundos(x)
  17.     m= minutos(x)*60
  18.     h= horas(x)*3600
  19.     return (s+m+h)
  20.  
  21. def escribir(x):
  22.     s=x%60
  23.     m=x/60%60
  24.     h=x/3600
  25.     print h,":",m,":",s
  26.      
  27.  
  28. st1= totalSegundos(d1)
  29. st2= totalSegundos(d2)
  30.  
  31. def mayor(x,y):
  32.     r=max(x,y)
  33.     return r
  34.  
  35. def menor(x,y):
  36.     r=min(x,y)
  37.     return r
  38.  
  39. def resta(x,y):
  40.     if x>y:
  41.         return x-y
  42.     elif x<y:
  43.         return y-x
  44.  
  45. def suma(x,y):
  46.     return x+y
  47.  
  48. print
  49. print "Los segundos totales del primer digito son:",st1," = ",
  50. escribir(st1)
  51. print "Los segundos totales del segundo digito son:",st2," = ",
  52. escribir(st2)
  53. print
  54. print "Suma =",
  55. escribir(suma(st1,st2))
  56. print "Mayor =",
  57. escribir(mayor(st1,st2))
  58. print "Menor =",
  59. escribir(menor(st1, st2))
  60. print "Resta =",
  61. escribir(resta(st1, st2))

y me entrega este resultado que no es el que me debería dar:
Código:
Sumar y restar dos instantes de tiempo
Primer instante (HHMMSS) ?100910
Segundo instante (HHMMSS) ?104530

Los segundos totales del primer digito son: 36550  =  10 : 9 : 10
Los segundos totales del segundo digito son: 38730  =  10 : 45 : 30

Suma = 20 : 54 : 40
Mayor = 10 : 45 : 30
Menor = 10 : 9 : 10
Resta = 0 : 36 : 20
por que ocurre eso al sacar solo las horas en el codigo ?
saludos