#include<
stdio.h>
int Month[13]= {0,31,28,31,30,31,30,31,31,30,31,30,31};
int print_month[7][8];
bool leap_year(int year)
{
return year%4==0&&year%100!=0||year%400==0;
}
int get_days(int year,int month,int day)
{//返回从公元1年1月1日到该日期的天数
int i;
int sum=0;
for(i=1; i<year; i++)
{
if(leap_year(i))
sum+=366;
else sum+=365;
}
if(leap_year(year))
Month[2]=29;
for(i=1; i<month; i++)
sum+=Month[i];
Month[2]=28;
return sum+day;
}
void Print(int year,int month)
{//打印该月的日历
int i,j;
for(i=0; i<7; i++)
for(j=0; j<8; j++)
print_month[i][j]=0;
int sum=get_days(year,month,1);
if(leap_year(year))
Month[2]=29;
int t=1;
j=sum%7;
i=0;
while(t<=Month[month])
{
print_month[i][j]=t++;
j++;
if(j>=7)
{
i++;
j=0;
}
}
printf("\t%d月\n");
printf("****************************\n");
printf("日 一 二 三 四 五 六\n");
for(i=0; i<6; i++)
{
for(j=0; j<7; j++)
{
if(print_month[i][j]==0)printf(" ");
else printf("%-3d ",print_month[i][j]);
}
printf("\n");
}
printf("***************************\n");
Month[2]=28;
}
int main()
{
int year,month,day;
printf("输入日期:");
scanf("%d%d%d",&year,&month,&day);
printf("%d年%d月%d日是星期",year,month,day);
int t=get_days(year,month,day)%7;
if(t%7==0)printf("日\n");
else printf("%d\n",t%7);
Print(year,month);
return 0;
}
追问请问你调试了没有啊
追答有错误吗?我测试了几个数据都是对的啊。
追问好的,有问题再追问😁
再问一下,这是c++还是C
![](https://video.ask-data.xyz/img.php?b=https://iknow-pic.cdn.bcebos.com/43a7d933c895d143b4ab1c0f76f082025aaf0738?x-bce-process=image%2Fresize%2Cm_lfit%2Cw_600%2Ch_800%2Climit_1%2Fquality%2Cq_85%2Fformat%2Cf_auto)
追答改成int就行了
追问这个不是c++程序吧
get能不能换掉,还没学
兄弟,你帮我帮到底,我再给你70财富
追答//把leap_year函数换成这个应该就可以,财富值就不用了
int leap_year(int year)
{
if(year%4==0&&year%100!=0||year%400==0)return 1;
else return 0;
}
追问兄弟,能不能给个QQ号
追答已删除
本回答被提问者和网友采纳