Te dejo algunos codigos de StackOverflow:
Para una entrada de la forma: dd-mm-aaaa
Devuelve el indice del dia o -1
int get_weekday(char * str) {
struct tm tm;
memset((void *) &tm
, 0, sizeof(tm
)); if (strptime(str, "%d-%m-%Y", &tm) != NULL) {
if (t >= 0) {
return localtime(&t
)->tm_wday
; // Sunday=0, Monday=1, etc. }
}
return -1;
}
Otra funcion es esta, no conserva los valores de algunas varaibles asi que no es problema para una funcion Y que podes pasar como enteros.
Devuelve el indice del dia que comienza en el Domingo, es decir 1 seria Lunes.
int d = 15 ; //Day 1-31
int m = 5 ; //Month 1-12`
int y = 2013 ; //Year 2013`
int weekday = (d += m < 3 ? y-- : y - 2, 23*m/9 + d + 4 + y/4- y/100 + y/400)%7;
No los probe, pero supongo que funcionaran correctamente.