Advertisement
FoxTuGa

Parque de Estac. - <Old>

May 8th, 2011
167
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 5.45 KB | None | 0 0
  1. #include <stdio.h>
  2.  
  3. int v;
  4. int numMins, numMinsOut, numHoras, numHorasOut, numDias, numDiasOut, numMes, numMesOut, numAno, numAnoOut;
  5. int dif_mins, dif_horas, dif_dias, dif_mes, dif_ano, dia_mes;
  6. int numMinsIn;
  7. int numFracc;
  8. int TotalMins;
  9. float valPagar;
  10.  
  11.  
  12. int main()
  13. {
  14.     // INPUTS //
  15.     printf("\n\n ENTRADA:\n   dia / mes / ano : ");
  16.     scanf("%d %d %d", &numDias, &numMes, &numAno);
  17.     printf("\n   Hora / Minutos : ");
  18.     scanf("%d %d", &numHoras, &numMinsIn);
  19.  
  20.     printf("\n\n SAIDA:\n   dia / mes / ano : ");
  21.     scanf("%d %d %d", &numDiasOut, &numMesOut, &numAnoOut);
  22.     printf("\n   Hora / Minutos : ");
  23.     scanf("%d %d", &numHorasOut, &numMinsOut);
  24.     ///
  25.  
  26.     // Calculo dos Minutos //
  27.     if( numMinsOut < numMinsIn )
  28.         dif_mins = numMinsIn - numMinsOut;
  29.     if( numMinsOut > numMinsIn )
  30.         dif_mins = numMinsOut - numMinsIn;
  31.     if( numMinsOut == numMinsIn )
  32.         numMins = 0;
  33.    
  34.     numMins = dif_mins;
  35.     ///
  36.  
  37.     // Calculo das Horas //
  38.     if( numHorasOut < numHoras )
  39.         dif_horas = numHoras - numHorasOut;
  40.     if( numHorasOut > numHoras )
  41.         dif_horas = numHorasOut - numHoras;
  42.     if( numHorasOut == numHoras )
  43.         dif_horas = 0;
  44.    
  45.     numMins = numMins + dif_horas * 60 ;
  46.     ///
  47.    
  48.     // Calculo dos Dias //
  49.     if( numDiasOut < numDias )
  50.         dif_dias = numDias - numDiasOut;
  51.     if( numDiasOut > numDias )
  52.         dif_dias = numDiasOut - numDias;
  53.     if( numDiasOut == numDias )
  54.         dif_dias = 0;
  55.  
  56.     numMins = numMins + dif_dias * 24 * 60 ;
  57.     ///
  58.  
  59.     // Calculo dos Meses e Anos + Validações Dias //
  60.     if( numDias > numDiasOut && numMes == numMesOut && numAno == numAnoOut )
  61.     {   printf("\n\n\t ERRO: Dados Invalidos \n\n");
  62.         return 0;
  63.     }
  64.  
  65.     if( numMesOut < numMes )
  66.         dif_mes = numMes - numMesOut;
  67.     if( numMesOut > numMes )
  68.         dif_mes = numMesOut - numMes;
  69.     if( numMesOut == numMes )
  70.         dif_mes = 0;
  71.  
  72.     numMins = numMins + numAnoOut - numAno;
  73.  
  74.     if( numMes == 1 || numMes == 3 || numMes == 5 || numMes == 7 || numMes == 8 || numMes == 10 || numMes == 12 || numMesOut == 1 || numMesOut == 3 || numMesOut == 5 || numMesOut == 7 || numMesOut == 8 || numMesOut == 10 || numMesOut == 12 )
  75.     {
  76.         if( numDias < 1 || numDias > 31 || numDiasOut < 1 || numDiasOut > 31 )
  77.         {  
  78.             printf("\n\n\t ERRO: Dados Invalidos \n\n");
  79.             return 0;
  80.         }
  81.         else
  82.             dia_mes = 31;
  83.     }
  84.  
  85.     if( numMes == 2 || numMesOut == 2)
  86.     {
  87.         if( numAno % 4 != 0 || ( numAno % 100 == 0 && numAno % 400 != 0 ) )
  88.         {
  89.             if( numDias < 1 || numDias > 29 || numDiasOut < 1 || numDiasOut > 29 )
  90.             {  
  91.                 printf("\n\n\t ERRO: Dados Invalidos \n\n");
  92.                 return 0;
  93.             }
  94.             else
  95.                 dia_mes = 29;
  96.         }
  97.  
  98.         else
  99.         {
  100.             if( numDias < 1 || numDias > 28 || numDiasOut < 1 || numDiasOut > 28 )
  101.             {   printf("\n\n\t ERRO: Dados Invalidos \n\n");
  102.                 return 0;
  103.             }
  104.             else
  105.                 dia_mes = 28;
  106.         }
  107.     }
  108.  
  109.     if( numMes == 4 || numMes == 6 || numMes == 9 || numMes == 11 || numMesOut == 4 || numMesOut == 6 || numMesOut == 9 || numMesOut == 11)
  110.     {
  111.         if( numDias < 1 || numDias > 30 || numDiasOut < 1 || numDiasOut > 30 )
  112.         {  
  113.             printf("\n\n\t ERRO: Dados Invalidos \n\n");
  114.             return 0;
  115.         }
  116.         else
  117.             dia_mes = 30;
  118.     }
  119.            
  120.         numMins = numMins + dif_mes * dia_mes * 24 * 60 ;
  121.         numMins = numMins + dif_ano * 12 * dia_mes * 24 * 60 ;
  122.  
  123.  
  124.     // Validaçao dos anos, meses, horas e minutos //
  125.     if( numMes < 1 || numMes > 12 || numMesOut < 1 || numMesOut > 12 || numMes > numMesOut && numAno == numAnoOut )
  126.     {  
  127.         printf("\n\n\t ERRO: Dados Invalidos \n\n");
  128.         return 0;
  129.     }
  130.    
  131.     if( numAno > numAnoOut || numAno < 2010 || numAnoOut < 2010 )
  132.     {  
  133.         printf("\n\n\t ERRO: Dados Invalidos \n\n");
  134.         return 0;
  135.     }
  136.  
  137.     if( numHoras < 0 || numHoras > 23 || numHorasOut < 1 || numHorasOut > 23 || numHoras > numHorasOut && ( numDias == numDiasOut && numMes == numMesOut && numAno == numAnoOut ) )
  138.     {  
  139.         printf("\n\n\t ERRO: Dados Invalidos \n\n");
  140.         return 0;
  141.     }
  142.  
  143.     if( numMinsIn < 0 || numMinsIn > 59 || numMinsOut < 0 || numMinsOut < 0 || numMinsIn > numMinsOut && ( numHoras == numHorasOut && numDias == numDiasOut && numMes == numMesOut && numAno == numAnoOut ) )
  144.     {  
  145.         printf("\n\n\t ERRO: Dados Invalidos \n\n");
  146.         return 0;
  147.     }
  148.     ///
  149.  
  150.     printf("\n\nVeiculo\n\t1 - Camelo\n\t2 - Burro\n\t3 - Automovel\n");
  151.     printf("Tipo de veiculo: ");
  152.     scanf("%d", &v);
  153.  
  154.     // calculo do valor
  155.     if(v < 1 || v > 3)
  156.     {
  157.         printf("\n\n\tVeiculo invalido!\n\n");
  158.     }
  159.     else
  160.     {
  161.            
  162.         // calculo do num de fraccoes
  163.         numFracc = numMins / 15;
  164.         if(numMins % 15 != 0)
  165.             numFracc = numFracc +1;
  166.  
  167.         // calculo do valor a pagar
  168.         switch(v)
  169.         {
  170.         case 1:
  171.             switch(numFracc)
  172.             {
  173.             case 1:
  174.                 valPagar = 0;
  175.                 break;
  176.             case 2:
  177.             case 3:
  178.             case 4:
  179.             case 5:
  180.             case 6:
  181.             case 7:
  182.             case 8:
  183.                 valPagar = (numFracc - 1) * 5;
  184.                 break;
  185.             default:
  186.                 valPagar = 35 + (numFracc - 8) * 7.5;
  187.                 break;
  188.             }
  189.             break;
  190.         case 2:
  191.             switch(numFracc)
  192.             {
  193.             case 1:
  194.                 valPagar = 10;
  195.                 break;
  196.             case 2:
  197.             case 3:
  198.             case 4:
  199.             case 5:
  200.             case 6:
  201.             case 7:
  202.             case 8:
  203.                 valPagar = 10 + (numFracc - 1) * 8;
  204.                 break;
  205.             default:
  206.                 valPagar =  64 + (numFracc - 8) * 7.5;
  207.                 break;
  208.             }
  209.             break;
  210.         case 3:
  211.             switch(numFracc)
  212.             {
  213.             case 1:
  214.                 valPagar = 2;
  215.                 break;
  216.             case 2:
  217.             case 3:
  218.             case 4:
  219.                 valPagar = 2 + (numFracc - 1) * 3;
  220.                 break;
  221.             case 5:
  222.             case 6:
  223.             case 7:
  224.             case 8:
  225.                 valPagar = 11 + (numFracc - 1) * 5;
  226.                 break;
  227.             default:
  228.                 valPagar =  31 + (numFracc - 8) * 5;
  229.                 break;
  230.             }
  231.             break;
  232.         }
  233.         printf("\nValor a pagar: %.2f\n\n", valPagar);
  234.     }
  235.     /// calculo do valor a pagar
  236.     return 0;
  237. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement