1- diseñe un algoritmo q lea la hora actuial del dia HH:MM:SS Y determine las horas,min y seg q restan para culminar el dia.asuma un formato de 24 h
2, diseñe un algoritmo para sumar dos tiempos dados en horas, min y seg
muchas gracias
cyn
![]() |
![]() |
|

#include <stdio>
#include <time>
int main ()
{
time_t rawtime;
struct tm * timeinfo;
/* obtener el tiempo en segundos desde el 1 de enero de 1970 */
time ( &rawtime );
// Imprimir la fecha y Hora en formato string, revisar la funcion ctime
printf ( "La fecha y hora actual son %s", ctime (&rawtime) );
// Luego convertir esa hora y fecha que estan en segundos
// a la eestructura de TM, que contiene
/*struct tm
{
int tm_sec; /* Seconds: 0-59 (K&R says 0-61?)
int tm_min; /* Minutes: 0-59
int tm_hour; /* Hours since midnight: 0-23
int tm_mday; /* Day of the month: 1-31
int tm_mon; /* Months *since* january: 0-11
int tm_year; /* Years since 1900
int tm_wday; /* Days since Sunday (0-6)
int tm_yday; /* Days since Jan. 1: 0-365
int tm_isdst; /* +1 Daylight Savings Time, 0 No DST,
* -1 don't know
};*/
timeinfo = localtime ( &rawtime );
// Imprimir la hora
printf ("La hora es :%d\n",timeinfo->tm_hour );
// Imprimir los minutos
printf ("Los minutos son:%d\n",timeinfo->tm_min );
// Imprimir los segundos
printf ("Los segundos son:%d\n", timeinfo->tm_sec );
system("PAUSE");
return 0;
}

#include <stdio.h>
#include <unistd.h>
#include <time.h>
#include <sys/times.h>
#include <sys/wait.h>
#include <signal.h>
#include <unistd.h>
/*Este programa tiene diferentes opciones de ejecucion (switch),
1._Tiempo de ejecucion de la funcion alarm()
ejecuta la opcion alarm por la cantidad de seg q usuario ingresò
2._Tiempo de ejecucion en un programa cualquiera + nombre_del programa
ejecuta cualquier programa o comando y contabiliza su tiempo hasta q deje de ejecutarse dicho programa Nota: el unico argumento q recibe dicha funcion es el nombre del comando sin argumentos, para er una version con argumentos ver Contabilidad-0_2.c
3._Salir
Sale del programa
*/
char prog[20];//esta cadena la necesito en Anyprogram()
int AlarmAccounting()
{
struct tms tms_Init, tms_End;//estructura definida en times.h
/*
struct tms
{
clock_t tms_utime; User CPU time.
clock_t tms_stime; System CPU time.
clock_t tms_cutime; User CPU time of dead children.
clock_t tms_cstime; System CPU time of dead children.
};
*/
clock_t init_Time;
clock_t end_Time;
long enSeg= sysconf(_SC_CLK_TCK);//asigno los intervalos en segundos del reloj
//pa luego hacer la conversion
//iniicio el conteo
init_Time= times(&tms_Init);
Alarm();
wait(NULL);//busca pa q sirve wait!, supongo q es para parar hasta q el proceso termine y saltar al programa Contabilidad
//termino el conteo
end_Time= times(&tms_End);
printf ("Tiempo en ejecucion + tardanza en digitar el dato: %0.3f\n", (float)(end_Time - init_Time)/enSeg);//%f float en notacion decimal
printf ("User CPU time: %0.15f\n", (float)(tms_End.tms_utime - tms_Init.tms_utime)/enSeg);
printf ("Tiempo de sistema: %0.15f\n", (float)(tms_End.tms_stime - tms_Init.tms_stime)/enSeg);
printf ("Tiempo de usuario mientras mueren los hijos : %0.15f\n", (float)(tms_End.tms_cutime - tms_Init.tms_cutime)/enSeg);
printf ("Tiempo de sistema mientras mueren los hijos : %0.15f\n", (float)(tms_End.tms_cstime - tms_Init.tms_cstime)/enSeg);
return 0;
}
void trapper(int sig)//ayuda pa Program
{
signal(sig, trapper);
printf("\nMENSAJE!: funcion alarm()\n\n");
}
int Alarm(void)//este programa solo muestra gran cambio en Tiempo Real
{
/*********************************************************************
Nota: este metodo demora lo q el usuario se demora en digitar el tiempo
de espera para alarm() mas lo q demora dicha funcion.
***********************************************************************/
int i, o;
signal(14, trapper);
//printf("El PID del proceso es : %d\n", getpid() );
printf("digite el tiempo de espera para la funcion alarm(): ");
scanf("%d",&o);
//for(i=0;i<=3;i++)
//{
alarm(o);
pause();
//}
return 0;
}
int AnyProgram( /*char prog[]*/)
{
/*Nota:
si en la linea de arriba pongo char prog[]; <--Ojo tiene punto y coma
en la linea de abajo debo poner &prog para q lo muestre en pantalla
*/
printf("Digite el programa a ejecutar: ");
scanf("%s",&prog);
printf("El programa a ejecutar es: %s\n",prog); //imprime el programa a ejecutar
struct tms tms_Init, tms_End;
clock_t init_Time, end_Time;
long enSeg;
/* obtiene el número de int. De reloj por segundo */
enSeg= sysconf(_SC_CLK_TCK);
init_Time= times(&tms_Init);
// aqui va el codigo del programa a ejecutar
char path[20]="/usr/bin";
if (fork()==0)
{//execvp(argv[1], &argv[1]);
// Hace lo mismo q la ultima opcion q està en comentarios en este ciclo (La ultima)
execvp(prog, NULL);
perror("error ejecutando el programa");
return 1;
}
wait(NULL);
end_Time= times(&tms_End);
printf ("\nTiempo en ejecucion: %0.3f\n", (float)(end_Time - init_Time)/enSeg);//%f float en notacion decimal
printf ("User CPU time: %0.15f\n", (float)(tms_End.tms_utime - tms_Init.tms_utime)/enSeg);
printf ("Tiempo de sistema: %0.15f\n", (float)(tms_End.tms_stime - tms_Init.tms_stime)/enSeg);
printf ("Tiempo de usuario mientras mueren los hijos : %0.15f\n", (float)(tms_End.tms_cutime - tms_Init.tms_cutime)/enSeg);
printf ("Tiempo de sistema mientras mueren los hijos : %0.15f\n", (float)(tms_End.tms_cstime - tms_Init.tms_cstime)/enSeg);
return 0;
}
int main()
{
int opcion=0;
printf("\n");
printf("-----Contabilidad version 0.2------\n");
printf("1._Tiempo de ejecucion de la funcion alarm()\n");
printf("2._Tiempo de ejecucion en un programa cualquiera \n");
printf("3._Salir\n");
printf("\n");
do { printf("digite su opcion [1-3]...: ");
scanf("%d",&opcion);
}while((opcion<0)||(opcion>3));
switch(opcion)
{
case 1:AlarmAccounting();
break;
case 2:
/* scanf("%s",&prog);
printf("%s",&prog);//esto no debe cambiarse de posicion
*/
AnyProgram( /*prog*/);
break;
case 3:
return 0;
}
return 0;
}

Volver a Algoritmos y Estructuras de datos
Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 0 invitados