The time.h header file contains definitions of functions to get and manipulate date and time information.
- It describes three time-related data types.
- clock_t: clock_t represents the date as an integer which is a part of the calendar time.
- time_t: time_t represents the clock time as an integer which is a part of the calendar time.
- struct tm: struct tm holds the date and time which contains:
C
struct tm {
int tm_sec;
int tm_min;
int tm_hour;
int tm_mday;
int tm_mon;
int tm_year;
int tm_wday;
int tm_yday;
int tm_isdst;
}
|
- 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:
- Program to print the date and time of the system.
C
#include <stdio.h>
#include <time.h>
int main( void )
{
struct tm * ptr;
time_t t;
t = time (NULL);
ptr = localtime (&t);
printf ( "%s" , asctime (ptr));
return 0;
}
|
Output: Tue Aug 6 09:00:29 2019
2. Program to print UTC (Coordinated Universal Time) of the system.
C
#include <stdio.h>
#include <time.h>
int main( void )
{
struct tm * ptr;
time_t t;
t = time (NULL);
ptr = gmtime (&t);
printf ( "%s" , asctime (ptr));
return 0;
}
|
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.
C
#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));
}
|
Output: Sum of 4196144 and 0 is 4196144
Time taken to print sum is 0.00 seconds
4. Program to find the clock ticks.
C
#include <math.h>
#include <stdio.h>
#include <time.h>
int frequency_of_primes( int n)
{
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;
}
|
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.
C
#include <stdio.h>
#include <time.h>
int main()
{
time_t rawtime;
struct tm * timeinfo;
char buffer[80];
time (&rawtime);
timeinfo = localtime (&rawtime);
strftime (buffer, 80,
"Time is %I:%M%p." ,
timeinfo);
puts (buffer);
return 0;
}
|