用C语言获取星期几(可以详细解释一下这段代码吗?)
/*mktimeexample:weekdaycalculator*/#include<stdio.h>/*printf,scanf*/#include<time.h>/...
/* mktime example: weekday calculator */
#include <stdio.h> /* printf, scanf */
#include <time.h> /* time_t, struct tm, time, mktime */
int main ()
{
time_t rawtime; // time_t 用来声明什么?还是其他?
struct tm * timeinfo; // 指针吗
int year, month ,day;
const char * weekday[] = { "Sunday", "Monday",
"Tuesday", "Wednesday",
"Thursday", "Friday", "Saturday"};
/* prompt user for date */
printf ("Enter year: "); fflush(stdout); scanf ("%d",&year);
printf ("Enter month: "); fflush(stdout); scanf ("%d",&month);
printf ("Enter day: "); fflush(stdout); scanf ("%d",&day);
/* get current timeinfo and modify it to the user's choice */
time ( &rawtime ); // 主要是从这里开始
timeinfo = localtime ( &rawtime );
timeinfo->tm_year = year - 1900; // 为什么要减去1900 ?
timeinfo->tm_mon = month - 1;
timeinfo->tm_mday = day; // 主要是这一大段函数的详细解释
/* call mktime: timeinfo->tm_wday will be set */
mktime ( timeinfo ); // 还有这句函数什么意思
printf ("That day is a %s.\n", weekday[timeinfo->tm_wday]); // 通过指针 get 星期几?
return 0;
} 展开
#include <stdio.h> /* printf, scanf */
#include <time.h> /* time_t, struct tm, time, mktime */
int main ()
{
time_t rawtime; // time_t 用来声明什么?还是其他?
struct tm * timeinfo; // 指针吗
int year, month ,day;
const char * weekday[] = { "Sunday", "Monday",
"Tuesday", "Wednesday",
"Thursday", "Friday", "Saturday"};
/* prompt user for date */
printf ("Enter year: "); fflush(stdout); scanf ("%d",&year);
printf ("Enter month: "); fflush(stdout); scanf ("%d",&month);
printf ("Enter day: "); fflush(stdout); scanf ("%d",&day);
/* get current timeinfo and modify it to the user's choice */
time ( &rawtime ); // 主要是从这里开始
timeinfo = localtime ( &rawtime );
timeinfo->tm_year = year - 1900; // 为什么要减去1900 ?
timeinfo->tm_mon = month - 1;
timeinfo->tm_mday = day; // 主要是这一大段函数的详细解释
/* call mktime: timeinfo->tm_wday will be set */
mktime ( timeinfo ); // 还有这句函数什么意思
printf ("That day is a %s.\n", weekday[timeinfo->tm_wday]); // 通过指针 get 星期几?
return 0;
} 展开
1个回答
展开全部
time_t是一个存储时间信息的long int
time(&rawtime) 将系统时间存入rawtime这个time_t中
struct tm *timeinfo 里tm是一个存时间信息的结构体 timeinfo是指向一个这个结构体的指针
timeinfo=localtime(&rawtime) 将之前time()得到的信息转存为struct tm内容
timeinfo->tm_year = year - 1900 是因为计数时间从1900.1.1开始 下同
mktime(timeinfo)是将已经变为struct tm的时间信息转换为之前的long int 秒数
timeinfo->tm_wday得到从0到6分别代表周日至周六
参考资料:
http://baike.baidu.com/view/1741851.htm?fr=aladdin#4_1
http://baike.baidu.com/view/5755484.htm?fr=aladdin
time(&rawtime) 将系统时间存入rawtime这个time_t中
struct tm *timeinfo 里tm是一个存时间信息的结构体 timeinfo是指向一个这个结构体的指针
timeinfo=localtime(&rawtime) 将之前time()得到的信息转存为struct tm内容
timeinfo->tm_year = year - 1900 是因为计数时间从1900.1.1开始 下同
mktime(timeinfo)是将已经变为struct tm的时间信息转换为之前的long int 秒数
timeinfo->tm_wday得到从0到6分别代表周日至周六
参考资料:
http://baike.baidu.com/view/1741851.htm?fr=aladdin#4_1
http://baike.baidu.com/view/5755484.htm?fr=aladdin
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询