求星期的函数C语言 c++求星期几

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
#includetime.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;
【求星期的函数C语言 c++求星期几】case 3:printf("三\n");break;
case 4:printf("四\n");break;
case 5:printf("五\n");break;
case 6:printf("六\n");break;
}
return 0;
}
C语言程序,输入年月日算出当天星期几先做一个函数,计算1900年1月1日到该天的天数,然后用膜除求出星期几并输出 。
具体代码如下:
#include stdio.h
#include stdlib.h
int Day(int y,int m,int d);
int main(int argc, char *argv[]) {
int i;//循环变量
int year,month,day;//读取用户输入的年月日
int days;//储存从1900-1-1到该天的天数
int week=0;//储存求余后的星期
//字符串组合输出星期
char b[]={"星期"};
char c[7][4]={"日","一","二","三","四","五","六"};
loop:printf("请输入年 月 日:(空格分隔)\n");
scanf(" %d%d%d",year,month,day);
days=Day(year,month,day);
//增强程序的健壮性
if(days==-1)
{
printf("输入格式有误,");
fflush(stdin);//防止用户输入字母等其他非数字字符
goto loop;
}
else
{
week=days%7;//用求余计算星期几
printf("%d年%d月%d日是%s%s\n",year,month,day,b,c[week]);
}
system("pause");
return 0;
}
//函数功能:输入年月日,输出1900-1-1到该天的天数,-1位输入不合法
int Day(int y,int m,int d)
{
int i;
int r=0;//储存1900到该天的闰年个数
int a[]={31,28,31,30,31,30,31,31,30,31,30}; //m给每出月的天数
if(y=1900m0m13d0d32)
{
for(i=1900;i=y;i++)//计算闰年的个数
{
if(i%400==0||i%100!=0i%4==0)
r++;
}
for(i=0;im-1;i++)//统计当年1月1日到当月的天数
{
d+=a[i];
}
if((y%400==0||y%100!=0y%4==0)m3)//如果当年是闰年但不到二月就不能算进去
r--;
return 365*(y-1900)+r+d;
}
else
return -1;
}
c语言函数输入xxxxxxxx日期date,计算当天是星期几?#include stdio.h
#include time.h
int main() {
int year, month, day;
printf("Enter a date (yyyy-mm-dd): ");
scanf("%d-%d-%d", year, month, day);
struct tm tm = {0};
tm.tm_year = year - 1900;
tm.tm_mon = month - 1;
tm.tm_mday = day;
tm.tm_isdst = -1;
time_t t = mktime(tm);
char* weekday[] = {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"};
printf("%s\n", weekday[localtime(t)-tm_wday]);

推荐阅读