Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def is_data_ok(data):
- lista = ['0','1','2','3','4','5','6','7','8','9']
- if len(data) < 10 or len(data) > 10:
- return False
- for i in data[3:5]:
- if i not in lista:
- return False
- for i in data[0:2]:
- if i not in lista:
- return False
- for i in data[6:10]:
- if i not in lista:
- return False
- mes = int(data[3:5])
- dia = int(data[0:2])
- ano = int(data[6:10])
- if data[2:3] and data[5:6] != '/':
- return False
- if (1 > mes) or (mes > 12):
- return False
- if (1 > dia) or (dia > 31):
- return False
- if 0000 > ano > 9999:
- return False
- if mes == 2:
- if dia > 29:
- return False
- if dia == 29:
- if (ano % 400 != 0 and ano %100==0) or (ano %4 != 0):
- return False
- else:
- return True
- if (mes in [6,9,11]) and (dia in range(1,31) and (0000 < ano <= 9999)):
- return True
- if (mes in [1,3,4,5,7,8,10,12]) and (dia in range(1,32) and (0000 < ano <= 9999)):
- return True
- def is_hora_ok(hora):
- digit = ['1','2','3','4','5','6','7','8','9','0']
- if len(hora) < 5 or len(hora) > 5:
- return False
- if hora[2:3] != ':':
- return False
- for i in hora[0:2]:
- if i not in digit:
- return False
- for i in hora[3:5]:
- if i not in digit:
- return False
- if int(hora[0:2]) < 0 or int(hora[0:2]) > 23:
- return False
- if int(hora[3:5]) < 0 or int(hora[3:5]) > 59:
- return False
- if int(hora[0:2]) >= 0 and int(hora[0:2]) <= 23:
- return True
- if int(hora[3:5]) >= 0 and int(hora[3:5]) <= 59:
- return True
- return True
- print 'Escolha uma das opcoes abaixo:'
- print '1 - Tokio/Japao'
- print '2 - Nova Iorque/EUA'
- print '3 - Cidade do Cabo/Africa do Sul'
- print '4 - Londres/Inglaterra'
- print '5 - Melbourne/Australia'
- while True:
- try:
- op = int(raw_input('Opcao: '))
- if op in range(1,6):
- break
- else:
- print 'Opcao invalida.Digite novamente.'
- except ValueError:
- print 'Opcao invalida.Digite novamente.'
- while True:
- dt = raw_input('Data (DD/MM/AAAA): ')
- if (is_data_ok(dt) == False):
- print 'Data invalida.Digite novamente.'
- else:
- break
- while True:
- hr = raw_input('Horario (hh:mm): ')
- if (is_hora_ok(hr) == False):
- print 'Horario invalido.Digite novamente.'
- else:
- break
- while True:
- try:
- dr = int(raw_input('Duracao (horas): '))
- if dr <= 0:
- print 'Valor invalido.Digite novamente.'
- else:
- break
- except ValueError:
- print 'Valor invalido.Digite novamente.'
- hrparti = int(hr[0:2])
- diaparti = int(dt[0:2])
- 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']}
- for opcao in fusos:
- if int(op) == int(opcao):
- hrchega = hrparti + fusos[opcao][0] + int(dr)
- while 0 > hrchega or hrchega > 23:
- if hrchega > 23:
- hrchega -= 23
- diaparti += 1
- if hrchega < 0:
- hrchega += 23
- diaparti -= 1
- hrchega = str(hrchega)
- if hrchega == '0':
- hrchega += '0'
- horario = hrchega + hr[2:5]
- datachega = str(diaparti) + dt[2:10]
- print '\n=== Horario de Chegada ===\n'
- print 'Fuso-horario do Brasil:'
- print 'Data: %s' % dt
- print 'Horario: %s\n' % hr
- for opcao in fusos:
- if op == int(opcao):
- print 'Fuso-horario de %s:' % fusos[opcao][1]
- print 'Data: %s' % datachega
- print 'Horario: %s' % horario
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement