C语言 今天之前的第n天是星期几?
思路:
1、利用time.h头文件下的time函数获取从1970年至今的秒数。
2、通过获取到的秒数-N天的秒数(N*24*60*60),得到的就是n天前的日期对应秒数。
3、利用localtime函数将秒数转换成日期结构体struct tm。这个结构体里包含了年月日时分秒星期等等信息。
4、直接用asctime函数将struct tm结构信息转成成可定字符串打印输出(显示星期几、年月日、时分秒)。
当然你也可以直接通过struct tm结构体指针获取其星期的成员值输出(成员int tm_wday; 表示星期 – 取值[0,6],0:星期天,1:星期一,以此类推 )。
演示代码如下:
#include <stdio.h>
#include<time.h>
int main()
{
int n,w;
struct tm *tDate;
time_t tt;
time(&tt);
printf("请输入(天数)n的值:"),scanf("%d",&n);
tt-=n*24*60*60;
tDate=localtime(&tt);
printf("%d天前的日期:\n",n);
printf("1、通过函数asctme转换字符串打印:%s\n",asctime(tDate));
w=tDate->tm_wday;
printf("2、通过结构成员获取,%d天前是星期",n);
switch(w)
{
case 0:printf("日\n");break;
case 1:printf("一\n");break;
case 2:printf("二\n");break;
case 3:printf("三\n");break;
case 4:printf("四\n");break;
case 5:printf("五\n");break;
case 6:printf("六\n");break;
}
return 0;
}