Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # meses
- meses={
- 1:['enero',31],
- 2:['febrero',28],
- 3:['marzo',31],
- 4:['abril',30],
- 5:['mayo',31],
- 6:['junio',30],
- 7:['julio',31],
- 8:['agosto',31],
- 9:['septiembre',30],
- 10:['octubre',31],
- 11:['noviembre',30],
- 12:['diciembre',31]
- }
- #validador de fecha
- def validador():
- r = -2
- cond = True
- while cond == True:
- fecha = input('\nIngrese fecha (dd/mm/aaaa): ').split('/')
- for i in range(len(fecha)):
- fecha[i] = int(fecha[i])
- if fecha[2]>0:
- if fecha[1]>0 and fecha[1]<13:
- if fecha[0]<=meses[fecha[1]][1]:
- print('\nLa fecha '+str(fecha[0])+'/'+str(fecha[1])+'/'+str(fecha[2])+' es valida.')
- r = fecha #Retorno de fecha valida como array de enteros
- cond=False
- else:
- r = -1
- print('\nDia invalido\n')
- else:
- r = -1
- print('\nMes invalido\n')
- else:
- r = -1
- print('\nAño invalido\n')
- return r
- #conversor fecha -> cantidadDeDias
- def fechaADias(fecha):
- #agno
- r = (fecha[2]-1)*365
- #mes
- for m in range(1, fecha[1], +1):
- r += meses[m][1]
- #dia
- r += fecha[0]
- #agno biciesto
- r += fecha[2]//4
- return r
- #conversor cantidadDeDias -> fecha
- def diasAFecha(dias):
- if dias>-1:
- dias -= (dias//365)//4 #resta de dias por agno biciesto
- a = (dias//365)
- cond = True
- i=1
- resto = dias%365
- while cond == True:
- if resto<meses[i][1]:
- m=i
- d=resto
- cond=False
- else:
- resto-=meses[i][1]
- i+=1
- r = [d, m, a+1]
- else:
- print('\nError: La cantidad de dias debe ser un entero positivo (n>0)!\n')
- r = 0
- return r
- #main
- cond = True
- while cond==True:
- print('|CONVERSOR DE FECHA/DIA|\n\nOpciones:\n2. Fecha a cantidad de dias\n1. Cantidad de dias a fecha\n0. Salir\n')
- opc = int(input('<opcion>: '))
- if opc == 2:
- print('\nCantidad de dias desde el agno 1 es '+str(fechaADias(validador()))+' dias.\n')
- elif opc == 1:
- d = int(input('\nIngrese cantidad de dias: '))
- print('\nLa fecha que representa la cantidad de dias "'+str(d)+'" es '+str(diasAFecha(d)[0])+'/'+str(diasAFecha(d)[1])+'/'+str(diasAFecha(d)[2])+'\n')
- elif opc == 0:
- cond = False
- else:
- print('\nError: Opcion no valida!\n')
- print('\nFin de la ejecucion!\n')
Advertisement
Add Comment
Please, Sign In to add comment