//wday函數參數接受格式如:
//20000308
//此函數返回值如:"星期三"
#include<stdio.h>
#include<time.h>
#include<stdlib.h>
#include<string.h>
char* wday(char *date)
{
char *p=date;
char *wd[]=
{
"星期日",
"星期一","星期二",
"星期三","星期四",
"星期五","星期六",
"unknown"
};
struct mydate
{
int year;
char years[10];
int mon;
char months[5];
int mday;
char mdays[5];
}mydate;
strncpy(
mydate.years,date,4);
mydate.year=
atoi(mydate.years);
mydate.months[0]=
*(p+4);
mydate.months[1]=
*(p+5);
mydate.months[2]=
'\0';
mydate.mon=
atoi(mydate.months);
mydate.mdays[0]=
*(p+6);
mydate.mdays[1]=
*(p+7);
mydate.mdays[2]=
'\0';
mydate.mday=
atoi(mydate.mdays);
struct tm Timestr;
Timestr.tm_year=
mydate.year-1900;
Timestr.tm_mon=
mydate.mon-1;
Timestr.tm_mday=
mydate.mday;
Timestr.tm_hour=0;
Timestr.tm_min=0;
Timestr.tm_sec=1;
Timestr.tm_isdst=-1;
if(mktime(&Timestr)==-1)
return wd[7];
return wd[Timestr.tm_wday];
}
int main()
{
char wstr[12];
label:
fgets(wstr,12,stdin);
printf("%s是%s\n\n",wstr,wday(wstr));
goto label;
return 0;
}