Advertisement
Guest User

Untitled

a guest
Jun 23rd, 2017
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.83 KB | None | 0 0
  1. def is_data_ok(data):
  2. lista = ['0','1','2','3','4','5','6','7','8','9']
  3. if len(data) < 10 or len(data) > 10:
  4. return False
  5. for i in data[3:5]:
  6. if i not in lista:
  7. return False
  8. for i in data[0:2]:
  9. if i not in lista:
  10. return False
  11. for i in data[6:10]:
  12. if i not in lista:
  13. return False
  14. mes = int(data[3:5])
  15. dia = int(data[0:2])
  16. ano = int(data[6:10])
  17. if data[2:3] and data[5:6] != '/':
  18. return False
  19. if (1 > mes) or (mes > 12):
  20. return False
  21. if (1 > dia) or (dia > 31):
  22. return False
  23. if 0000 > ano > 9999:
  24. return False
  25. if mes == 2:
  26. if dia > 29:
  27. return False
  28. if dia == 29:
  29. if (ano % 400 != 0 and ano %100==0) or (ano %4 != 0):
  30. return False
  31. else:
  32. return True
  33. if (mes in [6,9,11]) and (dia in range(1,31) and (0000 < ano <= 9999)):
  34. return True
  35. if (mes in [1,3,4,5,7,8,10,12]) and (dia in range(1,32) and (0000 < ano <= 9999)):
  36. return True
  37.  
  38. def is_hora_ok(hora):
  39. digit = ['1','2','3','4','5','6','7','8','9','0']
  40. if len(hora) < 5 or len(hora) > 5:
  41. return False
  42. if hora[2:3] != ':':
  43. return False
  44. for i in hora[0:2]:
  45. if i not in digit:
  46. return False
  47. for i in hora[3:5]:
  48. if i not in digit:
  49. return False
  50. if int(hora[0:2]) < 0 or int(hora[0:2]) > 23:
  51. return False
  52. if int(hora[3:5]) < 0 or int(hora[3:5]) > 59:
  53. return False
  54. if int(hora[0:2]) >= 0 and int(hora[0:2]) <= 23:
  55. return True
  56. if int(hora[3:5]) >= 0 and int(hora[3:5]) <= 59:
  57. return True
  58. return True
  59.  
  60.  
  61. print 'Escolha uma das opcoes abaixo:'
  62. print '1 - Tokio/Japao'
  63. print '2 - Nova Iorque/EUA'
  64. print '3 - Cidade do Cabo/Africa do Sul'
  65. print '4 - Londres/Inglaterra'
  66. print '5 - Melbourne/Australia'
  67.  
  68.  
  69. while True:
  70. try:
  71. op = int(raw_input('Opcao: '))
  72. if op in range(1,6):
  73. break
  74. else:
  75. print 'Opcao invalida.Digite novamente.'
  76.  
  77. except ValueError:
  78. print 'Opcao invalida.Digite novamente.'
  79.  
  80. while True:
  81. dt = raw_input('Data (DD/MM/AAAA): ')
  82. if (is_data_ok(dt) == False):
  83. print 'Data invalida.Digite novamente.'
  84. else:
  85. break
  86.  
  87. while True:
  88. hr = raw_input('Horario (hh:mm): ')
  89. if (is_hora_ok(hr) == False):
  90. print 'Horario invalido.Digite novamente.'
  91. else:
  92. break
  93.  
  94.  
  95. while True:
  96. try:
  97. dr = int(raw_input('Duracao (horas): '))
  98. if dr <= 0:
  99. print 'Valor invalido.Digite novamente.'
  100. else:
  101. break
  102. except ValueError:
  103. print 'Valor invalido.Digite novamente.'
  104.  
  105. hrparti = int(hr[0:2])
  106. diaparti = int(dt[0:2])
  107. fusos = {'1':[12,'Tokio/Japao'],'2':[-1,'Nova Iorque/EUA'],'3':[5,'Cidade do Cabo/Africa do Sul'],'4':[4,'Londres/Inglaterra'],'5':[14,'Melbourne/Australia']}
  108. for opcao in fusos:
  109. if int(op) == int(opcao):
  110. hrchega = hrparti + fusos[opcao][0] + int(dr)
  111. while 0 > hrchega or hrchega > 23:
  112. if hrchega > 23:
  113. hrchega -= 23
  114. diaparti += 1
  115. if hrchega < 0:
  116. hrchega += 23
  117. diaparti -= 1
  118. hrchega = str(hrchega)
  119. if hrchega == '0':
  120. hrchega += '0'
  121. horario = hrchega + hr[2:5]
  122. datachega = str(diaparti) + dt[2:10]
  123.  
  124. print '\n=== Horario de Chegada ===\n'
  125. print 'Fuso-horario do Brasil:'
  126. print 'Data: %s' % dt
  127. print 'Horario: %s\n' % hr
  128.  
  129. for opcao in fusos:
  130. if op == int(opcao):
  131. print 'Fuso-horario de %s:' % fusos[opcao][1]
  132. print 'Data: %s' % datachega
  133. print 'Horario: %s' % horario
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement