Заголовки, которые вы используете, нестандартны.Используйте функции из стандарта:
#include <time.h>
struct tm *localtime_r(const time_t *timep, struct tm *result);
После вызова функции выше, вы можете получить день недели из:
tm->tm_wday
Ознакомьтесь с этим учебным пособием / примером .
Здесь больше документации с примерами .
Как уже отмечали другие, вы можете использовать strftime
для получения названия дня недели, когда у вас есть tm
,Вот хороший пример здесь :
#include <time.h>
#include <stdio.h>
#include <stdlib.h>
int
main(int argc, char *argv[])
{
char outstr[200];
time_t t;
struct tm *tmp;
t = time(NULL);
tmp = localtime(&t);
if (tmp == NULL) {
perror("localtime");
exit(EXIT_FAILURE);
}
if (strftime(outstr, sizeof(outstr), "%A", tmp) == 0) {
fprintf(stderr, "strftime returned 0");
exit(EXIT_FAILURE);
}
printf("Result string is \"%s\"\n", outstr);
exit(EXIT_SUCCESS);
}