Advertisement
GastonPalazzo

Var y Cond - Ej-16

Apr 2nd, 2020
184
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 6.80 KB | None | 0 0
  1. # meses
  2. meses={
  3. 1:['enero',31],
  4. 2:['febrero',29],
  5. 3:['marzo',31],
  6. 4:['abril',30],
  7. 5:['mayo',31],
  8. 6:['junio',30],
  9. 7:['julio',31],
  10. 8:['agosto',31],
  11. 9:['septiembre',30],
  12. 10:['octubre',31],
  13. 11:['noviembre',30],
  14. 12:['diciembre',31]
  15. }
  16.  
  17. # funcion de conversion |num->alpha|
  18. def aAlfa(num):
  19.     num = int(num)
  20.  
  21.     unidades=(
  22.     'cero',
  23.     'uno',
  24.     'dos',
  25.     'tres',
  26.     'cuatro',
  27.     'cinco',
  28.     'seis',
  29.     'siete',
  30.     'ocho',
  31.     'nueve'
  32.     )
  33.  
  34.     decenas=(
  35.     'diez',
  36.     'veinte',
  37.     'treinta',
  38.     'cuarenta',
  39.     'cincuenta',
  40.     'sesenta',
  41.     'setenta',
  42.     'ochenta',
  43.     'noventa'
  44.     )
  45.  
  46.     centenas=(
  47.     'cien',
  48.     'ciento',
  49.     'docientos',
  50.     'trecientos',
  51.     'cuatrocientos',
  52.     'quinientos',
  53.     'seiscientos',
  54.     'setecientos',
  55.     'ochocientos',
  56.     'novecientos'
  57.     )
  58.  
  59.     excep=(
  60.     'diez',
  61.     'once',
  62.     'doce',
  63.     'trece',
  64.     'catorce',
  65.     'quince'
  66.     )
  67.  
  68.     if -1<num<1000000:
  69.         if num<10:
  70.             #unidades
  71.             r = unidades[num]
  72.         elif 9<num<100:
  73.             if num<16:
  74.                 #decenas < 16
  75.                 r = excep[(num%10)]
  76.             else:
  77.                 #decenas > 15
  78.                 r = decenas[(num//10)-1]+' y '+unidades[num%10]
  79.         elif 99<num<1000:
  80.             #centenas
  81.             if num<110:
  82.                 if num==100:
  83.                     r = centenas[0]
  84.                 else:
  85.                     r = centenas[(num//100)]+' '+unidades[num%100]
  86.             elif 9<(num%100)<16:
  87.                 r = centenas[(num//100)]+' '+excep[((num%100)%10)]
  88.             elif 1000>num>115:
  89.                 if (num%100)==0:
  90.                     r = centenas[num//100]
  91.                 elif ((num%100)%10)==0:
  92.                    r = centenas[(num//100)]+' '+decenas[((num%100)//10)-1]
  93.                 else:
  94.                     if (num%100)<10:
  95.                         r = centenas[num//100]+' '+unidades[num%100]
  96.                     elif 9<(num%100)<16:
  97.                         r = centenas[1]+''+excep[(num%100)%10]
  98.                     else:
  99.                         r = centenas[(num//100)]+' '+decenas[((num%100)//10)-1]+' y '+unidades[num%10]
  100.         elif 999<num<1000000:
  101.             #millares
  102.             #solucion de la division entre mil [modulo 1]
  103.             if (num//1000)<10:
  104.                 if (num//1000)==1:
  105.                     unidadesDeMil=' mil '
  106.                 else:
  107.                     unidadesDeMil = unidades[num//1000]+' mil '
  108.                 r = unidadesDeMil
  109.             elif 9<(num//1000)<100:
  110.                 if (num//1000)<16:
  111.                     decenasDeMil = excep[(num//1000)%10]+' mil '
  112.                 else:
  113.                     if (num//1000)%10==0:
  114.                         decenasDeMil = decenas[((num//1000)%10)-1]+' mil '
  115.                     else:
  116.                         decenasDeMil = decenas[((num%1000)//10)-1]+' y '+unidades[(num%1000)%10]+' mil '
  117.                 r = decenasDeMil
  118.             elif 99<(num//1000)<1000:
  119.                 if (num//1000)%100 == 0:
  120.                     centenasDeMil = centenas[(num//1000)//100]+' mil '
  121.                 elif 0<((num//1000)%100)<10:
  122.                     if ((num//1000)%100)==1:
  123.                         centenasDeMil = centena[1]+'un mil '
  124.                     else:
  125.                         centenasDeMil = centena[1]+''+unidades[((num//1000)%100)]+' mil '
  126.                 elif 9<((num//1000)%100)<16:
  127.                     centenasDeMil = centenas[(num//1000)//100]+' '+excep[((num//1000)%100)%10]+' mil '
  128.                 elif ((num//1000)%100)>16:
  129.                     if (((num//1000)%100)%10)>0:
  130.                         centenasDeMil = centenas[(num//1000)//100]+' '+decenas[(((num//1000)%100)//10)-1]+' y '+unidades[((num//1000)%100)%10]+ ' mil '
  131.                     else:
  132.                         centenasDeMil = centenas[(num//1000)//100]+' '+decenas[(((num//1000)%100)//10)-1]+' mil '
  133.                 r = centenasDeMil
  134.             #resto de la division entre mil [modulo 2]
  135.             if (num%1000)<10:
  136.                 if (num%1000)!=0:
  137.                     r += ' '+unidades[num%1000]
  138.             elif 9<(num%1000)<100:
  139.                 if (num%1000)<16:
  140.                     r += ' '+excep[(num%1000)%10]
  141.                 else:
  142.                     if (num%1000)%10==0:
  143.                         r += ' '+decenas[((num%1000)//10)-1]
  144.                     else:
  145.                         r += ' '+decenas[((num%1000)//10)-1]+' y '+unidades[(num%1000)%10]
  146.             elif (num%1000)>99:
  147.                 if ((num%1000)%100)<10:
  148.                     if ((num%1000)%100)==0:
  149.                         if (num%1000)==100:
  150.                             r += centenas[0]
  151.                         else:
  152.                             r += centenas[(num%1000)//100]
  153.                     else:
  154.                         r += centenas[(num%1000)//100]+' '+unidades[(num%1000)%100]
  155.                 elif 9<((num%1000)%100)<16:
  156.                     r += centenas[(num%1000)//100]+' '+excep[((num%1000)%100)%10]
  157.                 elif 100>((num%1000)%100)>16:
  158.                     if 100>(((num%1000)%100)%10)<1:
  159.                         r += centenas[(num%1000)//100]+' '+decenas[(((num%1000)%100)//10)-1]
  160.                     else:
  161.                         r += centenas[(num%1000)//100]+' '+decenas[(((num%1000)%100)//10)-1]+' y '+unidades[(((num%1000)%100))%10]
  162.                 elif ((num%1000)%100)>99:
  163.                     if (((num%1000)%100)%10)==0:
  164.                         r += centenas[(num%1000)//100]+' '+decenas[(((num%1000)%100)//10)-1]
  165.                     else:
  166.                         r += centenas[(num%1000)//100]+' '+decenas[(((num%1000)%100)//10)-1]+' y '+unidades[((num%1000)%100)%10]
  167.  
  168.     else:
  169.         r = 'Valor fuera de rango!'
  170.  
  171.     return r
  172.  
  173. #validador de fecha
  174. def validador():
  175.     r = -2
  176.     cond = True
  177.     while cond == True:
  178.  
  179.         fecha = input('Ingrese fecha (dd/mm/aaaa): ').split('/')
  180.         for i in range(len(fecha)):
  181.             fecha[i] = int(fecha[i])
  182.  
  183.         if fecha[2]>0:
  184.             if fecha[1]>0 and fecha[1]<13:
  185.                 if fecha[0]<=meses[fecha[1]][1]:
  186.                     print('\nLa fecha '+str(fecha[0])+'/'+str(fecha[1])+'/'+str(fecha[2])+' es valida.')
  187.                     r = fecha
  188.                     cond=False
  189.                 else:
  190.                     r = -1
  191.                     print('\nDia invalido\n')
  192.             else:
  193.                 r = -1
  194.                 print('\nMes invalido\n')
  195.         else:
  196.             r = -1
  197.             print('\nAƱo invalido\n')
  198.     return r
  199.  
  200. #main
  201. print('|CONVERSOR DE FORMATO DE FECHA (NUMERICO -> ALFABETICO)|\n\n*Nota: valores validos de fecha -> 0<n<1.000.000\n')
  202. f = validador()
  203. print('\nConversion en alfa -> La fecha '+aAlfa(f[0])+' de '+str(meses[f[1]][0])+' del aƱo '+aAlfa(f[2])+' es valida.')
  204. print('\nFin de la ejecucion\n')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement