当前位置:首页 » 编程语言 » c语言日期求星期

c语言日期求星期

发布时间: 2025-07-09 18:49:44

c语言:用自定义函数来实现任意输入一个日期,结果输出其星期几

c语言中,通过编写自定义函数,可以轻松地计算任意输入日期对应的星期几。这需要考虑闰年以及每个月的天数。计算方法是累加前几个月的天数加上当前月的天数。具体实现时,需要定义一个函数来判断是否为闰年,并根据年份和月份输入来计算天数。

首先,定义一个数组来存储每个月的天数。同时,定义一个变量来记录是否为闰年。接着,使用for循环累加前几个月的天数,根据输入的月份调整累加的范围。最后,将当前月的天数加到累计天数上,得到最终的天数。为了简化计算,可以使用自定义函数来判断是否为闰年,从而正确计算2月份的天数。

下面是一个简单的实现示例:

int mon[13] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};

int leap_year(int year) {

if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)) {

return 1;

}

return 0;

}

int main() {

int mon[13] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};

int y, m, d, days, leap;

scanf("%d%d%d", &y, &m, &d);

leap = leap_year(y);

for (int i = 1, days = 0; i < m; i++) {

if (i == 2 && leap) {

days += 29;

} else {

days += mon[i];

}

}

days += d;

printf("days=%d\n", days);

return 0;

}

通过上述代码,可以准确地计算出输入日期对应的天数。进一步地,可以结合星期几的计算公式,实现计算星期几的功能。这不仅有助于加深对c语言的理解,还能提高编程技巧。

Ⅱ C语言 给日期算星期几

补充一个错误,下面回答同理

case3:if(d>32){b=1printf("dayiserror.
")};break;
case4:if(d>31){b=1printf("dayiserror. ")};break;
case5:if(d>32){b=1printf("dayiserror. ")};break;
case6:if(d>31){b=1printf("dayiserror. ")};break;
case7:if(d>32){b=1printf("dayiserror. ")};break;
case8:if(d>32){b=1printf("dayiserror. ")};break;
case9:if(d>31){b=1printf("dayiserror. ")};break;
case10:if(d>32){b=1printf("dayiserror. ")};break;
case11:if(d>31){b=1printf("dayiserror. ")};break;
case12:if(d>32){b=1printf("dayiserror. ")};break;

这一段代码if后面的条件全部大了1,限制值应该是31和30,除非你改成>=

Ⅲ c语言计算日期为星期几

#include<stdio.h>
int isRn(int num){
if((num%4==0&&num%400!=0)||num%400==0){
return 1;
}else{
return 0;
}
int monthDay(int year,int month){
if(month==1||month==3||month==5
||month==7||month==8||month==10
||month==12){
return 31;
}else if(month==4||month==6||month==9
||month==11)
{
return 30;
}else if(month==2){
if(isRn(int num)==1){
return 29;
}else{
return 28;
}
}
}
void main(){
int sum=0,year,month,day,i,temp,j;
printf("请输入年份:");
scanf("%d",&year);
while(year<1900){
printf("年份必须从1900年开始!\n\n");
printf("请输入年份:");
scanf("%d",&year);
}
printf("请输入月份:");
scanf("%d",&month);
while(month<1||month>12){
printf("月份必须是1到12之间!\n\n");
printf("请输入月份:");
scanf("%d",&month);
}
printf("请输入日:");
scanf("%d",&day);
while(day>monthDay(year,month)||day<1){
printf("日必须从1开始,并且不能大于该月的天数!\n\n");
printf("请输入日:");
scanf("%d",&day);
}
temp=month;
temp-=1;
for(i=1900;i<=year;i++){
for(j=1;j<=12;j++){
if(i==year&&j==temp){
break;
}
sum+= monthDay(year,j);
}
}
sum+=day;
printf("%d年%d月%d日,是星期",year,month,day)
if(sum%7==0){
printf("日。\n");
}else if(sum%7==1){
printf("一。\n");
}else if(sum%7==2){
printf("二。\n");
}else if(sum%7==3){
printf("三。\n");
}else if(sum%7==4){
printf("四。\n");
}else if(sum%7==5){
printf("五。\n");
}else if(sum%7==2){
printf("六。\n");
}
}

Ⅳ C语言编程序实现如下功能:输入任意一个日期的年、月、日的值,求出是星期几并输出。

#include <stdio.h>
void main ()
{
int y,m,d,c,s,w;
printf("请输入8位年月日,以空格隔开:");
scanf("%d%d%d",&y,&m,&d);
if (m==1) c=d;
else if (m==2) c=31+d;
else if (m==3) c=31+28+d;
else if (m==4) c=31+28+31+d;
else if (m==5) c=31+28+31+30+d;
else if (m==6) c=31+28+31+30+31+d;
else if (m==7) c=31+28+31+30+31+30+d;
else if (m==8) c=31+28+31+30+31+30+31+d;
else if (m==9) c=31+28+31+30+31+30+31+31+d;
else if (m==10) c=31+28+31+30+31+30+31+31+30+d;
else if (m==11) c=31+28+31+30+31+30+31+31+30+31+d;
else if (m==12) c=31+28+31+30+31+30+31+31+30+31+30+d;
if (m>2)
{if (y%100==0) {if (y%400==0) c=c+1;}
else if (y%4==0) c=c+1;}
s=(y-1)*365+(y-1)/4-(y-1)/100+(y-1)/400+c;
w=s%7;
switch (w)
{
case 0: printf("星期日");break;
case 1: printf("星期一");break;
case 2: printf("星期二");break;
case 3: printf("星期三");break;
case 4: printf("星期四");break;
case 5: printf("星期五");break;
case 6: printf("星期六");break;
printf("\n");
}
}

热点内容
java返回this 发布:2025-10-20 08:28:16 浏览:593
制作脚本网站 发布:2025-10-20 08:17:34 浏览:888
python中的init方法 发布:2025-10-20 08:17:33 浏览:581
图案密码什么意思 发布:2025-10-20 08:16:56 浏览:765
怎么清理微信视频缓存 发布:2025-10-20 08:12:37 浏览:684
c语言编译器怎么看执行过程 发布:2025-10-20 08:00:32 浏览:1012
邮箱如何填写发信服务器 发布:2025-10-20 07:45:27 浏览:255
shell脚本入门案例 发布:2025-10-20 07:44:45 浏览:113
怎么上传照片浏览上传 发布:2025-10-20 07:44:03 浏览:806
python股票数据获取 发布:2025-10-20 07:39:44 浏览:712