strftime(): Diverses informations sur date et heure
Prototype:
size_t strftime ( char * tch, size_t maxtch, const char * fmt, const struct tm *padh);
dans: <time.h>
Description:
strftime() construit une chaîne dans le tableau tch d'après les spécifications de format fournies par la chaîne fmt. Ce sous-programme peut fournir la date dans la langue locale, si la spécification de cette langue est fournie par setlocale().
La chaîne fmt comprend des caractères 'ordinaires' et des directives de formatage qui - comme avec printf - commencent par le caractère '%'.
Arguments:
- tch : tableau de caractères de longueur maxtch
- maxtch: nombre maximum d'octets utilisables dans tch
- fmt : chaîne décrivant le format souhaité
- padh : adresse de l'agrégat contenant date et heure.
Directives de formatage:
%% caractère %.
%a %A nom abrégé / complet du jour.
%b %B nom abrégé / complet du mois.
%c date et heure (format anglo-saxon).
%d jour dans le mois (01 -> 31).
%H %I heure - 2 chiffres (01 -> 23 / 01 ->12).
%j jour dans l'année - 3 chiffres (001 -> 366).
%m mois - 2 chiffres (01 -> 12).
%M minutes - 2 chiffres (00 -> 59).
%p AM ou AP (matin ou après-midi).
%S secondes - 2 chiffres (00 -> 59).
%U semaine de l'année (00 -> 52).
le premier jour de la semaine est dimanche.
%w jour de la semaine (di:0 -> sa:6).
%W semaine de l'année (00 -> 52).
le premier jour de la semaine est lundi.
%x %X date (format anglo-saxon) / heure.
%y %Y année (00 -> 99) / avec 4 chiffres.
%Z zone horaire.
Valeur renvoyée:
- 0 si le résultat contient plus de maxtch-1 caractères,
- la longueur de la chaîne placée dans tch, sinon
Voir aussi:
Portabilité:
Exemple:
/*
La chaîne demandée contient dans l'ordre: jour de la
semaine, date du jour dans le mois, puis mois et année.
*/
#include
#include
#include
void main() {
char ch[80+1], fmt[80+1], * pcloc;
struct tm * pdh; time_t intps; int nbc;
intps=time(NULL); pdh = localtime(&intps);
nbc = strftime( ch, 81, "date : %A %d %B %Y", pdh);
printf("(nbc:%d) %s\n", nbc, ch);
pcloc = setlocale( LC_TIME, "fr_FR");
printf("\nlocalisation: 's'", pcloc);
nbc = strftime( ch, 81, "aujourd'hui: %A %d %B %Y", pdh);
printf("\n(nbc:%d) %s\n", nbc, ch);
}