Funciones asctime() y asctime_s() en C con ejemplos

Función asctime(): 
La función asctime() se define enarchivo de cabecera time.h. Esta función devuelve el puntero a la string que contiene la información almacenada en la estructura apuntada al tipo struct tm . Esta función se utiliza para devolver la hora local definida por el sistema.
Sintaxis:  

char *asctime(const struct tm* tm_ptr);

0 Parámetros: esta función acepta un solo parámetro time_ptr , es decir, un puntero al objeto tm que se va a convertir.
Tipo de devolución: esta función devuelve la hora del calendario en la forma » Www Mmm dd hh: mm: ss yyyy «, donde:  

  • Www : representa el día en tres letras abreviadas (Mon, Tue, Wed.., )
  • Mmm : representa el mes en tres letras abreviadas (Ene, Feb, Mar.., )
  • dd : representa la fecha en dos dígitos (01, 02, 10, 21, 31.., )
  • hh : representa la hora (11, 12, 13, 22…, )
  • mm : representa los minutos (10, 11, 12, 45…, )
  • ss : representa los segundos (10, 20, 30…, )
  • yyyy : representa el año en cuatro dígitos (2000, 2001, 2019, 2020…, )

El siguiente programa demuestra la función asctime() en C:

C

// C program to demonstrate
// the asctime() function
 
#include <stdio.h>
#include <time.h>
 
int main()
{
    struct tm* ptr;
    time_t lt;
    lt = time(NULL);
    ptr = localtime(<);
 
    // using the asctime() function
    printf("%s", asctime(ptr));
 
    return 0;
}
Producción: 

Wed Aug 14 04:21:25 2019

 

Función asctime_s():
Esta función se utiliza para convertir la hora del calendario dada en una representación textual. No podemos modificar la hora del calendario de salida en la función asctime() mientras que podemos modificar la hora del calendario en la función asctime_s(). La sintaxis general de asctime_s es « Www Mmm dd hh:mm:ss yyyy «.
Sintaxis:  

errno_t asctime_s(char *buf, rsize_t bufsz, 
                  const struct tm *time_ptr)

Parámetros: Esta función acepta tres parámetros:  

  • time_ptr : puntero a un objeto tm que especifica el tiempo de impresión
  • buf : puntero a un búfer proporcionado por el usuario de al menos 26 bytes de longitud
  • bufsz : tamaño del búfer proporcionado por el usuario

Valor de retorno: esta función devuelve el puntero a una string de caracteres estática terminada en nulo que contiene la representación textual de la fecha y la hora. La hora del calendario original se obtendrá de la función asctime().
Nota: En algunos compiladores C, asctime_s() no será compatible. Podemos usar la función strftime() en lugar de la función asctime_s().
El siguiente programa investiga la función asctime_s() en C:

C

// __STDC_WANT_LIB_EXT1__ is a User defined
// standard to get astime_s() function to work
#define __STDC_WANT_LIB_EXT1__ 1
 
#include <stdio.h>
#include <time.h>
 
int main(void)
{
    struct tm tm
        = *localtime(&(time_t){ time(NULL) });
    printf("%s", asctime(&tm));
 
// Calling C-standard to execute
// asctime_s() function
#ifdef __STDC_LIB_EXT1__
 
    char str[50];
 
    // Using the asctime_s() function
    asctime_s(str, sizeof str, &tm);
 
    // Print the current time
    // using the asctime_s() function
    printf("%s", str);
#endif
}
Producción: 

Wed Aug 14 04:33:54 2019

 

Referencia: https://en.cppreference.com/w/c/chrono/asctime

Publicación traducida automáticamente

Artículo escrito por avsadityavardhan y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *