Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //http://www.hackxcrack.es/forum/index.php?topic=18960.0
- //cualquier comentario es bueno (:
- #include <stdio.h>
- int revisar_periodo(char *periodo);
- void calcular(int actual_h,int actual_m,int agregar_h,int agregar_m); //funcion que calculara la hora.
- int main(){
- int h_actual,m_actual; //hora y minutos actuales.
- int agregar_h,agregar_m; //perdon por los nombres largos
- char periodo[10];
- do{
- printf("Hora actual: ");
- scanf("%d",&h_actual);
- printf("Minutos: ");
- scanf("%d",&m_actual);
- if(h_actual > 23 || m_actual > 59)
- printf("\n\nHora o minutos incorrectos\n\n");
- }while(h_actual > 23 || m_actual > 59);
- if(h_actual <= 12){ //si la hora es mayor a 12 hrs no tiene caso pedir am o pm
- do{
- printf("am o pm? ");
- scanf("%s",&periodo);
- if((periodo[0] != 'a' && periodo[0] != 'p') || periodo[1] != 'm')
- printf("\n\n%s no es valido\n\n",periodo);
- }while((periodo[0] != 'a' && periodo[0] != 'p') || periodo[1] != 'm'); // si los caracteres que introdujo no son "am" o "pm" vuelve a pedir
- h_actual += revisar_periodo(periodo); // en revisar periodo se le sumara 12 o 0
- }
- printf("Horas a agregar: ");
- scanf("%d",&agregar_h);
- printf("Minutos a agregar: ");
- scanf("%d",&agregar_m);
- calcular(h_actual,m_actual,agregar_h,agregar_m); //calcula e imprime la hora que se desea
- getchar();
- getchar();
- return 0;
- }
- int revisar_periodo(char *periodo){
- if(periodo[0]=='a' && periodo[1] == 'm') return 0; //suma 0 a la hora actual
- if(periodo[0]=='p' && periodo[1] == 'm') return 12; //suma 12 a la hora actual
- }
- void calcular(int actual_h,int actual_m,int agregar_h,int agregar_m){
- int hora,minutos;
- char periodo[2][3] = {"am","pm"};
- hora = ((actual_h + agregar_h) % 24) + ((actual_m + agregar_m)/60);
- minutos = (actual_m + agregar_m) % 60;
- printf("\n\nEn %d horas y %d minutos seran las: %d:%d %s",agregar_h,agregar_m,hora%12,minutos,periodo[hora/12]);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement