time.h header file in C with Examples

The time.h header file contains definitions of functions to get and manipulate date and time information.

  • It describes three time related datatypes.
    1. clock_t: clock_t represents the date as integer which is a part of the calendar time.
    2. time_t: time_t represents the clock time as integer which is a part of the calendar time.
    3. struct tm: struct tm holds the date and time which contains:
      filter_none

      edit
      close

      play_arrow

      link
      brightness_4
      code

      struct tm {
          // seconds,  range 0 to 59
          int tm_sec;
        
          // minutes, range 0 to 59
          int tm_min;
        
          // hours, range 0 to 23
          int tm_hour;
        
          // day of the month, range 1 to 31
          int tm_mday;
        
          // month, range 0 to 11
          int tm_mon;
        
          // The number of years since 1900
          int tm_year;
        
          // day of the week, range 0 to 6
          int tm_wday;
        
          // day in the year, range 0 to 365
          int tm_yday;
        
          // daylight saving time
          int tm_isdst;
      }

      chevron_right

      
      

  • It also contains CLOCKS_PER_SEC macro which holds the number of times does the system clock ticks per second.
  • Pre-defined functions in time.h
    S.No Function Name Explanation
    1. asctime() This function returns the date and time in the format
    day month date hours:minutes:seconds year.
    Eg: Sat Jul 27 11:26:03 2019.
    asctime() function returns a string by taking struct tm variable as a parameter.
    2. clock() This function returns the processor time consumed by a program
    3. ctime() This function returns the date and time in the format
    day month hours:minutes:seconds year
    Eg: Sat Jul 27 11:26:03 2019
    time is printed based on the pointer returned by Calendar Time
    4. difftime() This function returns the difference between the times provided.
    5. gmtime() This function prints the UTC (Coordinated Universal Time) Time and date.
    Format for both gmtime() and asctime() is same
    6. mktime() This function returns the calendar-time equivalent using struct tm.
    7. time() This function returns the calendar-time equivalent using data-type time_t.
    8. strftime() This function helps to format the string returned by other time functions using different format specifiers
  • Examples:
    1. Program to print the date and time of the system.
      filter_none

      edit
      close

      play_arrow

      link
      brightness_4
      code

      #include <stdio.h>
      #include <time.h>
      int main(void)
      {
          struct tm* ptr;
          time_t lt;
          lt = time(NULL);
          ptr = localtime(<);
          printf("%s", asctime(ptr));
          return 0;
      }

      chevron_right

      
      

      Output:

      Tue Aug  6 09:00:29 2019
      
    2. Program to print UTC (Coordinated Universal Time) of the system.
      filter_none

      edit
      close

      play_arrow

      link
      brightness_4
      code

      #include <stdio.h>
      #include <time.h>
      int main(void)
      {
          struct tm* ptr;
          time_t lt;
          lt = time(NULL);
          ptr = gmtime(<);
          printf("%s", asctime(ptr));
          return 0;
      }

      chevron_right

      
      

      Output:



      Tue Aug  6 09:00:31 2019
      
    3. Program to calculate the time taken to add two numbers program.
      Note: If user gives input slowly that time also add up for total execution time.

      filter_none

      edit
      close

      play_arrow

      link
      brightness_4
      code

      #include <stdio.h>
      #include <time.h>
      int main(void)
      {
          time_t start, end;
          start = time(NULL);
          int a, b;
          scanf("%d %d", &a, &b);
          printf("Sum of %d and %d is %d\n",
                 a, b, a + b);
          end = time(NULL);
          printf("Time taken to print sum is %.2f seconds",
                 difftime(end, start));
      }

      chevron_right

      
      

      Output:

      Sum of 4196144 and 0 is 4196144
      Time taken to print sum is 0.00 seconds
      
    4. Program to find the clock ticks.
      filter_none

      edit
      close

      play_arrow

      link
      brightness_4
      code

      #include <math.h>
      #include <stdio.h>
      #include <time.h>
        
      int frequency_of_primes(int n)
      {
          // This function checks the number of
          // primes less than the given parameter
          int i, j;
          int freq = n - 1;
          for (i = 2; i <= n; ++i)
              for (j = sqrt(i); j > 1; --j)
                  if (i % j == 0) {
                      --freq;
                      break;
                  }
          return freq;
      }
        
      int main()
      {
          clock_t t;
          int f;
          t = clock();
          f = frequency_of_primes(9999);
          printf("The number of primes lower"
                 " than 10, 000 is: %d\n",
                 f);
          t = clock() - t;
          printf("No. of clicks %ld clicks (%f seconds).\n",
                 t, ((float)t) / CLOCKS_PER_SEC);
          return 0;
      }

      chevron_right

      
      

      Output:

      The number of primes lower than 10, 000 is: 1229
      No. of clicks 2837 clicks (0.002837 seconds).
      
    5. Program to print time as hour: minute returned by asctime() file.
      filter_none

      edit
      close

      play_arrow

      link
      brightness_4
      code

      #include <stdio.h>
      #include <time.h>
      int main()
      {
          time_t rawtime;
          struct tm* timeinfo;
        
          // Used to store the time
          // returned by localetime() function
          char buffer[80];
        
          time(&rawtime);
          timeinfo = localtime(&rawtime);
          strftime(buffer, 80,
                   "Time is %I:%M%p.",
                   timeinfo);
        
          // strftime() function stores the
          // current time as Hours : Minutes
          //%I %M and %p-> format specifier
          // of Hours minutes and am/pm respectively*/
        
          // prints the formatted time
          puts(buffer);
        
          return 0;
      }

      chevron_right

      
      

      Output:

      Time is 09:00AM.
      


My Personal Notes arrow_drop_up

Intern at GeeksforGeeks

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.



Improved By : avsadityavardhan



Article Tags :
Practice Tags :


1


Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.