Rechercher
 

Améliorations / Corrections

Vous avez des améliorations (ou des corrections) à proposer pour ce document : je vous remerçie par avance de m'en faire part, cela m'aide à améliorer le site.

Emplacement :

Description des améliorations :

Fonction asctime

La librairie time.h La fonction clock


Entête à  inclure

#include <time.h>  // <ctime> en C++

Fonction asctime

char * asctime( const struct tm * pTime );

Cette fonction permet de convertir une structure de type struct tm, contenant des informations de date et d'heure en une chaîne de caractères C au format suivant :

 1 
Www Mmm dd hh:mm:ss 
Le format d'affichage de la fonction asctime

Vous ne pouvez pas changer le format d'afficher via cette fonction. Préférez l'utilisation de la fonction strftime si vous souhaiter contrôler le formatage de la chaîne.

le pointeur retourné cible une zone de mémoire unique. Vous ne devez pas chercher à libérer cette zone de mémoire. De plus la fonction n'est pas « tread-safe » : si un autre thread cherche aussi à appeler cette fonction, l'unique zone de mémoire sera modifiée. Vous devez donc en tenir compte.

Le comportement de la fontion asctime est équivalent au code suivant :

 1 
 2 
 3 
 4 
 5 
 6 
 7 
 8 
 9 
 10 
 11 
 12 
 13 
 14 
 15 
 16 
 17 
 18 
 19 
char * asctime( const struct tm * pTime ) {

    static const char dayNames[7][3] = {
        "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"
    };

    static const char monthNames[12][3] = {
        "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"
    };

    static char result[26];     // L'unique zone de mémoire dans laquelle travailler.

    sprintf( result, "%.3s %.3s%3d %.2d:%.2d:%.2d %d\n",
        dayNames[pTime->tm_wday], monthNames[pTime->tm_mon], pTime->tm_mday, 
        pTime->tm_hour, pTime->tm_min, pTime->tm_sec,
        1900 + pTime->tm_year );
    
    return result;
}
La fonction asctime est équivalent à ce code

Paramètre

Valeur de retour

Cette fonction renvoie une chaîne de caractères (un pointeur) associée à la date et à l'heure considérées. La zone de mémoire associée est préallouée par la librairie <time.h> : vous ne devez en aucun cas désallouer cet espace mémoire via un appel à free après exploitation de la chaîne.

Exemple de code

 1 
 2 
 3 
 4 
 5 
 6 
 7 
 8 
 9 
 10 
 11 
 12 
#include <stdio.h>
#include <time.h>

int main( int argc, char * argv[] ) {

    time_t timestamp = time( NULL );
    struct tm * timeInfos = localtime( & timestamp );

    printf( "Date and local time : %s\n", asctime( timeInfos ) );

    return 0;
}
Exemple d'utilisation de la fonction asctime

Et voici le résultat produit par cet exemple.

$> gcc -o Sample Sample.c
$> ./Sample
Date and local time : Sat Nov 22 20:38:19 2014

$> 

Fonctions et types connexes

gmtime
localtime
struct tm
time
time_t



La librairie time.h La fonction clock