怎样用c语言程序对所输入的日期知道它的星期几数

对输入的日期还有年份,求出它所对应的星期几数

1. 接受日期输入
2. 使用mktime和成tm结构
3. 使用localtime再转换成tm
4. 取出tm中的tm_wday

#include <time.h>
#include <stdio.h>

int main(int argc, char* argv[])
{
int year, mon, day;
time_t t;
struct tm tmval;
static char* weekdays[7]={"Sunday", "Monday", "Tuesday", "Wednsday", "Thursday", "Friday", "Saturday"};

puts("Please input a date(yyyy-mm-dd):");
scanf("%d-%d-%d", &year, &mon, &day);
printf("year=%d, mon=%d, day=%d\n", year, mon, day);
time(&t);
tmval = *localtime(&t); /* for tm_isdst field */
tmval.tm_year = year-1900;
tmval.tm_mon = mon-1;
tmval.tm_mday = day;
tmval.tm_hour = 0;
tmval.tm_min =0;
tmval.tm_sec = 1;
t = mktime(&tmval);
if( t == -1){
puts("Invalid time value!");
return -1;
}
tmval = *localtime(&t);
printf("%d-%d-%d is %s\n", tmval.tm_year + 1900, tmval.tm_mon+1, tmval.tm_mday, weekdays[tmval.tm_wday]);
return 0;
}
温馨提示:答案为网友推荐,仅供参考
相似回答