Section courante

A propos

Section administrative du site

MKTIME

Fabriquer le temps
Langage C time.h

Syntaxe

time_t *mktime(struct tm *ptrheure)

Paramètres

Nom Description
ptrheure Ce paramètre permet d'indiquer le temps à traiter

Description

Cette fonction permet de convertir des heures locales en heures normalisé.

Exemple

Voici un exemple permettant de calculer le nombre de jours entre deux dates à l'aide de cette fonction :

Essayer maintenant !
  1. #include <stdio.h>
  2. #include <time.h>
  3.  
  4. int GetNumberDaysBetween2Dates(char *date1, char *date2) {
  5.  struct tm timestamp1,timestamp2;
  6.  sscanf(date1,"%i-%i-%i",&timestamp1.tm_year,&timestamp1.tm_mon,&timestamp1.tm_mday);
  7.  sscanf(date2,"%i-%i-%i",&timestamp2.tm_year,&timestamp2.tm_mon,&timestamp2.tm_mday);
  8.  timestamp1.tm_sec = timestamp1.tm_min = timestamp1.tm_hour = timestamp1.tm_yday = timestamp1.tm_isdst = 0;
  9.  timestamp1.tm_year -= 1900;
  10.  timestamp1.tm_mon--;
  11.  timestamp2.tm_sec = timestamp2.tm_min = timestamp2.tm_hour = timestamp2.tm_yday = timestamp2.tm_isdst = 0;
  12.  timestamp2.tm_year -= 1900;
  13.  timestamp2.tm_mon--;
  14.  return abs(mktime(&timestamp2) - mktime(&timestamp1))/86400; 
  15. }
  16.  
  17. int main() {
  18.  printf("2011-01-01 au 2011-12-31 = %i jours\n",GetNumberDaysBetween2Dates("2011-1-1","2011-12-31"));
  19.  printf("2011-12-31 au 2011-01-01 = %i jours\n",GetNumberDaysBetween2Dates("2011-12-31","2011-1-1"));
  20.  printf("2011-06-15 au 2011-08-01 = %i jours\n",GetNumberDaysBetween2Dates("2011-6-15","2011-8-01"));
  21.  printf("2011-06-15 au 2011-06-19 = %i jours\n",GetNumberDaysBetween2Dates("2011-6-15","2011-6-19"));
  22.  printf("2011-06-15 au 2011-06-16 = %i jours\n",GetNumberDaysBetween2Dates("2011-6-15","2011-6-16"));
  23.  printf("2011-06-15 au 2011-06-15 = %i jours\n",GetNumberDaysBetween2Dates("2011-06-15","2011-06-15"));
  24.  return 0;
  25. }

on obtiendra le résultat suivant :

2011-01-01 au 2011-12-31 =364 jours
2011-12-31 au 2011-01-01 =364 jours
2011-06-15 au 2011-08-01 =47 jours
2011-06-15 au 2011-06-19 =4 jours
2011-06-15 au 2011-06-16 =1 jours
2011-06-15 au 2011-06-15 =0 jours

Voir également

Langage de programmation - C - Référence de procédures et fonctions - localtime
Langage de programmation - C - Référence de procédures et fonctions - time
Langage de programmation - C++ - Référence de procédures et fonctions - mktime

Références

Langage C, Edition Micro-Application, Gehard Willms, 2001, ISBN: 2-7429-2008-0, page 733.
Borland C++ for Windows 4.0, Library Reference, Edition Borland, 1993, Part # BCP1240WW21772, page 179.

Dernière mise à jour : Mardi, le 28 juillet 2015