Connaître le jour de la semaine

Problème

Vous avez besoin de connaître le jour de la semaine d’une date, pour savoir par exemple si l’on est samedi.

Solution

Récupérez la date sous la forme struct tm. Le champ tm_wday vous donne la réponse sous la forme d’un entier.

Discussion

La récupération de la date d’aujourd’hui sous forme de struct tm s’effectue en deux étapes, décrites successivement dans les recettes "Récupérer la date et l’heure courante" et "Convertir une estampille ou struct tm en chaîne de caractères" : la récupération de la date sous forme d’estampille puis sa transformation sous forme de struct tm. Le champ tm_wday retourne un nombre entre 0 (signifiant dimanche) et 6 (samedi). Au résultat, cela donne :


time_t t; 
struct tm *tm; 
char *semaine[] = 
  { "dimanche", "lundi", "mardi", "mercredi", "jeudi", "vendredi",  
                                                          "samedi" }; 
if(time (&t) == (time_t) -1)  
  printf("Échec de time()\n"); 
else { 
  tm = localtime (&t); 
  if(tm) 
    printf ("Aujourdhui, nous sommes %s.\n", semaine[tm->tm_wday]); 
  else 
    printf("Échec de localtime\n"); 
}
 

Cet exemple doit être modifié en cas d’utilisation avec des threads à cause de la fonction localtime(). Voyez la recette "Convertir...

Pour consulter la suite, découvrez le livre suivant :
couv_EI3CACT.png
60-signet.svg
En version papier
20-ecran_lettre.svg
En version numérique
41-logo_abonnement.svg
En illimité avec l'abonnement ENI
130-boutique.svg
Sur la boutique officielle ENI
Précédent
Récupérer la date et l'heure courante
Suivant
Effectuer des calculs sur les dates