Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # meses
- meses={
- 1:['enero',31],
- 2:['febrero',29],
- 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]
- }
- # funcion de conversion |num->alpha|
- def aAlfa(num):
- num = int(num)
- unidades=(
- 'cero',
- 'uno',
- 'dos',
- 'tres',
- 'cuatro',
- 'cinco',
- 'seis',
- 'siete',
- 'ocho',
- 'nueve'
- )
- decenas=(
- 'diez',
- 'veinte',
- 'treinta',
- 'cuarenta',
- 'cincuenta',
- 'sesenta',
- 'setenta',
- 'ochenta',
- 'noventa'
- )
- centenas=(
- 'cien',
- 'ciento',
- 'docientos',
- 'trecientos',
- 'cuatrocientos',
- 'quinientos',
- 'seiscientos',
- 'setecientos',
- 'ochocientos',
- 'novecientos'
- )
- excep=(
- 'diez',
- 'once',
- 'doce',
- 'trece',
- 'catorce',
- 'quince'
- )
- if -1<num<1000000:
- if num<10:
- #unidades
- r = unidades[num]
- elif 9<num<100:
- if num<16:
- #decenas < 16
- r = excep[(num%10)]
- else:
- #decenas > 15
- r = decenas[(num//10)-1]+' y '+unidades[num%10]
- elif 99<num<1000:
- #centenas
- if num<110:
- if num==100:
- r = centenas[0]
- else:
- r = centenas[(num//100)]+' '+unidades[num%100]
- elif 9<(num%100)<16:
- r = centenas[(num//100)]+' '+excep[((num%100)%10)]
- elif 1000>num>115:
- if (num%100)==0:
- r = centenas[num//100]
- elif ((num%100)%10)==0:
- r = centenas[(num//100)]+' '+decenas[((num%100)//10)-1]
- else:
- if (num%100)<10:
- r = centenas[num//100]+' '+unidades[num%100]
- elif 9<(num%100)<16:
- r = centenas[1]+''+excep[(num%100)%10]
- else:
- r = centenas[(num//100)]+' '+decenas[((num%100)//10)-1]+' y '+unidades[num%10]
- elif 999<num<1000000:
- #millares
- #solucion de la division entre mil [modulo 1]
- if (num//1000)<10:
- if (num//1000)==1:
- unidadesDeMil=' mil '
- else:
- unidadesDeMil = unidades[num//1000]+' mil '
- r = unidadesDeMil
- elif 9<(num//1000)<100:
- if (num//1000)<16:
- decenasDeMil = excep[(num//1000)%10]+' mil '
- else:
- if (num//1000)%10==0:
- decenasDeMil = decenas[((num//1000)%10)-1]+' mil '
- else:
- decenasDeMil = decenas[((num%1000)//10)-1]+' y '+unidades[(num%1000)%10]+' mil '
- r = decenasDeMil
- elif 99<(num//1000)<1000:
- if (num//1000)%100 == 0:
- centenasDeMil = centenas[(num//1000)//100]+' mil '
- elif 0<((num//1000)%100)<10:
- if ((num//1000)%100)==1:
- centenasDeMil = centena[1]+'un mil '
- else:
- centenasDeMil = centena[1]+''+unidades[((num//1000)%100)]+' mil '
- elif 9<((num//1000)%100)<16:
- centenasDeMil = centenas[(num//1000)//100]+' '+excep[((num//1000)%100)%10]+' mil '
- elif ((num//1000)%100)>16:
- if (((num//1000)%100)%10)>0:
- centenasDeMil = centenas[(num//1000)//100]+' '+decenas[(((num//1000)%100)//10)-1]+' y '+unidades[((num//1000)%100)%10]+ ' mil '
- else:
- centenasDeMil = centenas[(num//1000)//100]+' '+decenas[(((num//1000)%100)//10)-1]+' mil '
- r = centenasDeMil
- #resto de la division entre mil [modulo 2]
- if (num%1000)<10:
- if (num%1000)!=0:
- r += ' '+unidades[num%1000]
- elif 9<(num%1000)<100:
- if (num%1000)<16:
- r += ' '+excep[(num%1000)%10]
- else:
- if (num%1000)%10==0:
- r += ' '+decenas[((num%1000)//10)-1]
- else:
- r += ' '+decenas[((num%1000)//10)-1]+' y '+unidades[(num%1000)%10]
- elif (num%1000)>99:
- if ((num%1000)%100)<10:
- if ((num%1000)%100)==0:
- if (num%1000)==100:
- r += centenas[0]
- else:
- r += centenas[(num%1000)//100]
- else:
- r += centenas[(num%1000)//100]+' '+unidades[(num%1000)%100]
- elif 9<((num%1000)%100)<16:
- r += centenas[(num%1000)//100]+' '+excep[((num%1000)%100)%10]
- elif 100>((num%1000)%100)>16:
- if 100>(((num%1000)%100)%10)<1:
- r += centenas[(num%1000)//100]+' '+decenas[(((num%1000)%100)//10)-1]
- else:
- r += centenas[(num%1000)//100]+' '+decenas[(((num%1000)%100)//10)-1]+' y '+unidades[(((num%1000)%100))%10]
- elif ((num%1000)%100)>99:
- if (((num%1000)%100)%10)==0:
- r += centenas[(num%1000)//100]+' '+decenas[(((num%1000)%100)//10)-1]
- else:
- r += centenas[(num%1000)//100]+' '+decenas[(((num%1000)%100)//10)-1]+' y '+unidades[((num%1000)%100)%10]
- else:
- r = 'Valor fuera de rango!'
- return r
- #validador de fecha
- def validador():
- r = -2
- cond = True
- while cond == True:
- fecha = input('Ingrese 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
- 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
- #main
- print('|CONVERSOR DE FORMATO DE FECHA (NUMERICO -> ALFABETICO)|\n\n*Nota: valores validos de fecha -> 0<n<1.000.000\n')
- f = validador()
- print('\nConversion en alfa -> La fecha '+aAlfa(f[0])+' de '+str(meses[f[1]][0])+' del aƱo '+aAlfa(f[2])+' es valida.')
- print('\nFin de la ejecucion\n')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement