Q: How can I get the current date or time of day in a C program?
A: Just use the time, ctime, localtime and/or strftime functions. Here is a simple example: [footnote]
#include <stdio.h>
#include <time.h>
int main()
{
time_t now;
time(&now);
printf("It's %s", ctime(&now));
return 0;
}
Calls to localtime and strftime look like this:
struct tm *tmp = localtime(&now);
char fmtbuf[30];
printf("It's %d:%02d:%02d\n",
tmp->tm_hour, tmp->tm_min, tmp->tm_sec);
strftime(fmtbuf, sizeof fmtbuf, "%A, %B %d, %Y", tmp);
printf("on %s\n", fmtbuf);
(Note that these functions take a pointer
to the time_t variable,
even when they will not be modifying it.[footnote]
)
If you need sub-second resolution, see question 19.37.
References:
K&R2 Sec. B10 pp. 255-7
ISO Sec. 7.12
H&S Sec. 18