Enlace CodePad
http://codepad.org/Gw1NNjeC
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Código Fuente
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
#include <stdio.h> #include <time.h> void conta_atras (int segundos); void pausa_segundos (float segundos ); void diferencia_tempos (void); void vaf_segundos_desde_01_01_1970 (void); void dia_hora_local (void); void exemplo_ctime (void); void exemplo_asctime (void); int vaf_aleatorio_entre (int minimo, int maximo); void exemplo_mktime (void); void main () { printf("\nExemplo ctime:\n"); exemplo_ctime(); printf("\nExemplo asctime:\n"); exemplo_asctime (); printf("\nExemplo dia_hora_local:\n"); dia_hora_local (); printf("\nExemplo vaf_segundos_desde_01_01_1970:\n"); vaf_segundos_desde_01_01_1970 (); printf("\nExemplo pausa_segundos con 2,5 segundos:\n"); pausa_segundos ( 2.5 ); printf("\nExemplo aleatorio entre dous numeros utilizando time para inicializar xerador de numeros aleatorios:\n"); printf("O valor aleatorio xerado e: %d\n", vaf_aleatorio_entre (500, 600)); printf("\nExemplo conta_atras:\n"); conta_atras (10); printf("\nExemplo diferencia_tempos:\n"); diferencia_tempos (); printf("\nExemplo mktime:\n"); exemplo_mktime (); } //Mediante asctime obtense unha cadea de texto a partir de un struct tm void exemplo_asctime () { time_t tempo_segundos; struct tm * timeinfo; time ( &tempo_segundos ); timeinfo = localtime ( &tempo_segundos ); //asctime pasa a texto a data e a hora pero so en ingles //actua como ctime pero recive un struc tm printf ( "A data e hora locais son: %s", asctime (timeinfo) ); } void exemplo_ctime () { time_t tempo_segundos; time ( &tempo_segundos ); //pasa a texto a data e a hora pero so en ingles //actua como asctime pero recive un timet (segundos dende 1900 printf ( "Segundos %d\n", tempo_segundos ); printf ( "A data e hora locais son: %s", ctime (&tempo_segundos) ); } //Mediante ctime obtense unha cadea de texto a partir de un time_t //obten o dia e a hora local partindo de datos GMT void dia_hora_local () { time_t tempo_segundos; struct tm * timeinfo; struct tm * timeinfo2; //executando tzset rellenase tzname con datos de zona horaria, senon so iniciais GMT EWT tzset (); printf("%s\n%s\n%d\n%d\n", tzname[0],tzname[1], timezone, daylight); tempo_segundos = time ( NULL ); timeinfo = localtime ( &tempo_segundos); timeinfo2 = gmtime ( &tempo_segundos ); printf ("%d\n",tempo_segundos); printf ("%d\n",tempo_segundos); printf("Hora GMT: %02d/%02d/%d %02d:%02d:%02d\n", timeinfo->tm_mday, timeinfo->tm_mon+1, timeinfo->tm_year+1900, timeinfo->tm_hour,timeinfo->tm_min,timeinfo->tm_sec); printf("Hora GMT: %02d/%02d/%d %02d:%02d:%02d\n", timeinfo2->tm_mday, timeinfo2->tm_mon+1, timeinfo2->tm_year+1900, timeinfo2->tm_hour,timeinfo2->tm_min,timeinfo2->tm_sec); printf("Hora local: %02d/%02d/%d %02d:%02d:%02d\n", timeinfo2->tm_mday, timeinfo2->tm_mon+1, timeinfo2->tm_year+1900, timeinfo2->tm_hour-(((1+daylight)*(timezone))/3600),timeinfo2->tm_min,timeinfo2->tm_sec); /* The meaning of each is: Member Meaning Range tm_sec seconds after the minute 0-61* tm_min minutes after the hour 0-59 tm_hour hours since midnight 0-23 tm_mday day of the month 1-31 tm_mon months since January 0-11 tm_year years since 1900 tm_wday days since Sunday 0-6 tm_yday days since January 1 0-365 tm_isdst Daylight Saving Time flag */ } //Indica cantos segundos pasaron dende o 1 de Xaneiro de 1970 que se corresponde co devolto pola funcion time() void vaf_segundos_desde_01_01_1970 () { time_t segundos_desde_01_01_1970; segundos_desde_01_01_1970 = time (NULL); printf ("%d Horas dende o 1 de Xaneiro de 1970", segundos_desde_01_01_1970/3600); } //utiliza a funcion time para obter o número de segundos entre dous eventos void diferencia_tempos (void) { time_t inicio,fin; char texto_teclado [50]; double diferencia; time (&inicio); printf ("Excribe o teu nome e direiche canto tardas en escribilo: "); gets (texto_teclado); time (&fin); //diferencia = difftime (fin,inicio); diferencia = fin - inicio; printf ("Hola %s.\n", texto_teclado); printf ("Levouche %.2f segundos escribir o teu nome.\n", diferencia ); } //conta os ciclos de reloxo para xerar unha pausa void pausa_segundos ( float segundos ) { clock_t fin_pausa; fin_pausa = clock () + (segundos * CLOCKS_PER_SEC); while (clock() < fin_pausa); } //utiliza a funcion pausa_segundos() para realizar unha conta atrás void conta_atras (int segundos) { int n; printf ("Iniciando Conta Atras...\n"); for (n=segundos; n>0; n--) { printf ("%d\n",n); pausa_segundos (1); } printf ("DESPEGUE!!!\n"); } //Usa time(NULL) para inicializar un xerador de numeros aleatorios, e obtén un número entre dous valores pasados como parámetros int vaf_aleatorio_entre (int minimo, int maximo) { // Inicizase o xerador de números aleatorios srand ( time(NULL) ); // Xeramos un número aleatorio entre minimo e maximo return rand () % (maximo-minimo+1) + minimo; } void exemplo_strftime (void) { time_t rawtime; struct tm * timeinfo; char buffer [80]; time ( &rawtime ); timeinfo = localtime ( &rawtime ); strftime (buffer,80,"Now it's %I:%M%p.",timeinfo); puts (buffer); /* specifier Replaced by Example %a Abbreviated weekday name * Thu %A Full weekday name * Thursday %b Abbreviated month name * Aug %B Full month name * August %c Date and time representation * Thu Aug 23 14:55:02 2001 %d Day of the month (01-31) 23 %H Hour in 24h format (00-23) 14 %I Hour in 12h format (01-12) 02 %j Day of the year (001-366) 235 %m Month as a decimal number (01-12) 08 %M Minute (00-59) 55 %p AM or PM designation PM %S Second (00-61) 02 %U Week number with the first Sunday as the first day of week one (00-53) 33 %w Weekday as a decimal number with Sunday as 0 (0-6) 4 %W Week number with the first Monday as the first day of week one (00-53) 34 %x Date representation * 08/23/01 %X Time representation * 14:55:02 %y Year, last two digits (00-99) 01 %Y Year 2001 %Z Timezone name or abbreviation CDT %% A % sign % */ } //Usando mktime, obter o dia da semana en texto (luns, martes...) void exemplo_mktime () { time_t tempo_segundos; struct tm * timeinfo; int anno, mes ,dia; char * dia_seman_texto[] = { "Domingo", "Luns", "Martes", "Mercores", "Xoves", "Venres", "Sabado"}; /* Pidense datos de entrada */ printf ("Introduce o ano: "); scanf ("%d",&anno); printf ("Introduce o mes: "); scanf ("%d",&mes); printf ("Introduce o dia: "); scanf ("%d",&dia); /* collese o tempo actual e modificanse os datos da data para evitar que mktime de un erro o non ter a estructura cuberta de todo */ time ( &tempo_segundos ); timeinfo = localtime ( &tempo_segundos ); timeinfo->tm_year = anno - 1900; timeinfo->tm_mon = mes - 1; timeinfo->tm_mday = dia; /* chamando a mktime: timeinfo->tm_wday incluira o número de dia da seman */ mktime ( timeinfo ); printf ("A data introcucica corresponde a un %s.\n", dia_seman_texto[timeinfo->tm_wday]); }
no me funco
ResponderEliminarExplícame lo que no te funcionó a ver si te puedo ayudar.
Eliminar
Eliminarquita -> void a main
agrega-> return 0; a main
agrega -> stdlib.h
hola amigo yo ocupo 2 librerias de c++ y 5 funciones de cada una y un ejemplo yo quiero presentar la libreria time.h
ResponderEliminarNo entiendo, por favor explícate mejor e intentaré ayudarte.
EliminarMuy buenos ejemplos, muchas gracias
ResponderEliminarGracias esta muy bueno el ejemplo.... (Y)
ResponderEliminar