1. Con una cuenta podrás:

    • Publicar preguntas y pedir ayuda
    • Crear tutoriales
    • Acceder a contenido privado
    • Convertirte en un Héroe de la web
    Cerrar notificación
  2. Eres nuevo en la comunidad y necesitas ayuda?
    Sigue estos pasos y recomendaciones antes de publicar tu duda:
    Cerrar notificación

Tutorial Mostrar Fecha y Hora en Lenguaje C [Explicación del Algoritmo]

Tema en 'C / C++' comenzado por Side Master, 8 de Enero de 2015.

  1. Side Master

    Side Master
    Moderador

    Se incorporó:
    6 de Enero de 2015
    Mensajes:
    257
    Me gusta recibidos:
    207
    Puntos de trofeos:
    43
    Género:
    Hombre
    Ocupación:
    Estudiante
    Página web:
    Hola que tal amigos, bienvenidos a este nuevo artículo, espero les sea de ayuda. Ahora les estaré presentando como Mostrar la Fecha y la Hora del sistema utilizando C.

    Esta aplicación es importante en casos de base de datos creadas en este lenguaje, teniendo en cuenta que C también gestiona bases de datos MySQL. Normalmente este ejercicio puede servirnos para crear algoritmos de control, como en que momento se registro un nuevo artículo, para dejar tareas programadas etc. Ultimadamente las fechas y horas en un programa es casi indispensable, por tanto que ahora os mostraré como hacerlo en C.

    Escriben el siguiente código y lo compilan:
    Nota:
    El código entá encerrado en un espacio php, pero es totalmente código C, esto lo hice nadamás para que puedan diferenciar algunas funciones.
    PHP:
    #include <stdio.h>
    #include <stdlib.h>
    #include <time.h>

    int main(int argc, char *argv[]) {
        time_t tiempo = time(0);
        struct tm *tlocal = localtime(&tiempo);

        char output[128];

        strftime(output, 128, "%d/%m/%y %H:%M:%S", tlocal);
        printf("Fecha y Hora: %s",output);

        system("PAUSE>NULL");
        return 0;
    }
     
    Si lo ejecutas esta es la salida del programa!.
    [​IMG]

    La explicación del código es el siguiente!.
    E
    s incluyen 3 librerías, la primera es para utilizar las funciones de entrada y salida de datos.
    La segunda librería es para utilizar la función system.
    La tercera es muy importante en este ejercicio porque es la que contiene las funciones de tiempo, al igual que una estuctura que nos provee toda la información.
    Código (Text):
    #include <stdio.h>
    #include <stdlib.h>
    #include <time.h>
    Ya incluidas las librerías a explicar el contenido de la función main(Principal).
    Se define una variable de tipo time_t llamada tiempo, esta tiene el valor de la función time que por parametros se le pasa NULL o cero para que de entrada no tenga ningún valor en la variable tiempo.
    Código (Text):
    time_t tiempo = time(0);
    Se invoca la estructura tm en la cual es la que contiene el formato a la llamada de datos. Se crea un puntero a estructura llamado tlocal, este queda *tlocal y se le asigna el tiempo local pasado con la dirección de memoria de la variable de tipo time_t tiempo.
    Código (Text):
    struct tm *tlocal = localtime(&tiempo);
    Quizas este no tenga que ser explicado pero igual, es una variable de tipo char (character) que contiene 128 espacios, que hace que se convierta en una cadena de caracteres. 1 espacio en una variable de tipo char equivale a un 1Byte de memoria, por tanto que estamos hablando de 128Bytes estaticos.
    Código (Text):
    char output[128];
    Poner mucha atención, aquí se utiliza una función llamada strftime que significa string-format-time = formato de tiempo a asignarse a la cadena, escribiendo nemotécnicamente.

    Esta función contiene 4 parametros, el nombre de la variable tipo cadena a resivir la información, la cantidad de bytes de la cadena, el formato de salida de la información que contiene el 4to parametro que es tlocal. Todos estos parametros separados por (,).
    Código (Text):
    strftime(output, 128, "%d/%m/%y %H:%M:%S", tlocal);
    %d: Day, Este es el día de la semana!.
    %m: Month, Este se refiere al mes del año.
    %y: Year, Este es el año en que se está!.

    Los datos anteriores eran para la Fecha, los datos próximos son para la Hora:
    %H:
    Hours, muestra la hora del día.
    %M: Minutes, los minutos transcurridos en la hora especifica.
    %S: Seconds, segundos transcurridos en el minuto especifico.

    Si quieres conocer más formatos de fecha y hora entonces dejame mostrarte la estructura tm.
    Código (Text):
    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 */
    };
    Por último queda la instrucción para expulsar o imprimir la variable: output[128] que contiene la información de fecha y hora del sistema o tiempo local (localtime).
    Código (Text):
    printf("Fecha y Hora: %s",output);
    Hacemos la parada del programa y listo, nuestra aplicación esta hecha. Espero poder haberme explicado bien, si necesitan más información no dudes en comentar el post. Buen día.

    He aquí el post simplificado: http://www.heroesdelaweb.com/threads/mostrar-hora-y-fecha-en-c.64/#post-336

    Fima: "Side Master"
     

    Archivos adjuntos:

    • codigo.PNG
      codigo.PNG
      Tamaño de archivo:
      3,7 KB
      Visitas:
      49
    • code.zip
      Tamaño de archivo:
      396 bytes
      Visitas:
      3
    Última modificación: 8 de Enero de 2015
    A Strong Backers le gusta esto.
  2. Strong Backers

    Strong Backers Nuevo Miembro

    Se incorporó:
    7 de Enero de 2015
    Mensajes:
    25
    Me gusta recibidos:
    15
    Puntos de trofeos:
    3
    Género:
    Hombre
    Buenisimo el post XD, esta muy bien.. bien explicado.
     
    A Side Master le gusta esto.
  3. Side Master

    Side Master
    Moderador

    Se incorporó:
    6 de Enero de 2015
    Mensajes:
    257
    Me gusta recibidos:
    207
    Puntos de trofeos:
    43
    Género:
    Hombre
    Ocupación:
    Estudiante
    Página web:
    Gracias por el comentario, además es un post bastante largo!. Debía de explicarlo así. Pues así fué. Buen día compañero.
     
    A Strong Backers le gusta esto.
  4. griselcesar

    griselcesar Miembro Activo

    Se incorporó:
    8 de Enero de 2015
    Mensajes:
    135
    Me gusta recibidos:
    61
    Puntos de trofeos:
    28
    Género:
    Hombre
    Ocupación:
    Estudiante
    Localización:
    Venezuela
    Página web:
    Excelente... Muy buen post... Muy Bueno enserio
     
  5. Side Master

    Side Master
    Moderador

    Se incorporó:
    6 de Enero de 2015
    Mensajes:
    257
    Me gusta recibidos:
    207
    Puntos de trofeos:
    43
    Género:
    Hombre
    Ocupación:
    Estudiante
    Página web:
    Gracias por estar activo en este espacio de la comunidad @griselcesar !. Se esperan sus aportes... Saludos.
     
    A Strong Backers le gusta esto.
  6. ezequiel

    ezequiel Nuevo Miembro

    Se incorporó:
    14 de Enero de 2015
    Mensajes:
    6
    Me gusta recibidos:
    1
    Puntos de trofeos:
    3
    Localización:
    Argentina
    podrias hacer un post sobre punteros que no logro entenderlo. saludos
     
  7. Side Master

    Side Master
    Moderador

    Se incorporó:
    6 de Enero de 2015
    Mensajes:
    257
    Me gusta recibidos:
    207
    Puntos de trofeos:
    43
    Género:
    Hombre
    Ocupación:
    Estudiante
    Página web:
    Con mucho gusto se lo haré. Saludos.
     
    A Strong Backers le gusta esto.

Comparte esta página