Guest User

Hora futura 2

a guest
May 10th, 2013
146
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /*##############################################
  2. #                                              #
  3. #            Hora futura 2                     #
  4. #            Para: HxC                         #
  5. #            Prpuesto por: quuim               #
  6. #            De: Tryger                        #
  7. #                                              #
  8. #     Devuelve la hora (en base 12) y el       #
  9. #     minuto que sera dentro de x horas y      #
  10. #     y minutos, tomando la hora actual, el    #
  11. #     minuto actual y un numero de horas y     #
  12. #     de minutos.                              #
  13. #                                              #
  14. ##############################################*/
  15.  
  16. #include <stdio.h>
  17.  
  18. void calculate(int, int, int, int); // Cuerpo del programa
  19.  
  20. void calculate(int nh, int nm, int ah, int am) {
  21.     if (am > 59) {            // Si los minutos a añadir sobrepasan 1 hora
  22.         ah += (nm + am) / 60; // Le sumamos a las horas a añadir las horas totales que suman los minutos
  23.         am = (nm + am) % 60;  // Ponemos los minutos menores a una hora
  24.     }
  25.     if (nm + am > 59) // Si los min actuales + los min a añadir sobrepasan la hora
  26.         nh++;         // Añadimos una hora mas a la hora actual
  27.  
  28.     printf("En %d horas y %d minutos, seran las %d:%d %s",ah, am,
  29.         (nh + ah) % 12, // Las horas en base 12
  30.         nm + am > 59 ? nm + am - 60 : nm + am, // Si minutos actuales + minutos a añadir sobrepasan la hora, imprimimos la suma de estos - 1 hora
  31.         (nh + ah) % 24 < 12 ? "am" : "pm"); // Si la hora en base 24 es menor que 20, se imprime "am", si no, "pm"
  32. }
  33.  
  34. int main() {
  35.     int nh, nm, ah, am; // nh = hora actual, nm = minutos actuales; ah = horas añadidas, am = minutos añadidos
  36.  
  37.     printf("Hora actual: ");
  38.     scanf("%d", &nh);
  39.     printf("Minuto actual: ");
  40.     scanf("%d", &nm);
  41.  
  42.     printf("Horas a añadir: ");
  43.     scanf("%d", &ah);
  44.     printf("Minutos a añadir: ");
  45.     scanf("%d", &am);
  46.  
  47.     calculate(nh, nm, ah, am);
  48.  
  49.     getchar();
  50.     return 0;
  51. }
RAW Paste Data