summaryrefslogtreecommitdiff
path: root/lib/libc/time/asctime.c
blob: d878288ae6653eba10c7947e13ec745d19f8669d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <stdio.h> // for snprintf
#include <time.h>  // for tm, asctime

char *asctime(const struct tm *timeptr)
{
	static char wday_name[][4] = { "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" };
	static char mon_name[][4] = {
		"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"
	};
	static char result[26];

	snprintf(result, sizeof(result), "%.3s %.3s%3d %.2d:%.2d:%.2d %d\n", wday_name[timeptr->tm_wday],
		 mon_name[timeptr->tm_mon], timeptr->tm_mday, timeptr->tm_hour, timeptr->tm_min, timeptr->tm_sec,
		 1900 + timeptr->tm_year);

	return result;
}