50 求用C语言编辑万年历……有偿
答案:2 悬赏:50
解决时间 2021-01-26 15:31
- 提问者网友:我没有何以琛的痴心不悔
- 2021-01-26 04:54
50 求用C语言编辑万年历……有偿
最佳答案
- 二级知识专家网友:逐風
- 2021-01-26 05:17
//红包发起
#include
#include
#include
int Leap(int year)
{
if((year%4==0 && year%100!=0) || year%400==0)
{
return 1;
}
else
{
return 0;
}
}
int GetDays(int year, int month)
{
int days[12]={31,28,31,30,31,30,31,31,30,31,30,31};
if(Leap(year)==1)
{
days[1]=29;
}
return days[month-1];
}
int Week(int y, int m, int d, char* buf)
{
if(m==1||m==2)
{
m+=12;
y--;
}
int iWeek=(d+2*m+3*(m+1)/5+y+y/4-y/100+y/400)%7;
switch(iWeek)
{
case 0: strcpy(buf,"星期一");return 1;
case 1: strcpy(buf,"星期二");return 2;
case 2: strcpy(buf,"星期三");return 3;
case 3: strcpy(buf,"星期四");return 4;
case 4: strcpy(buf,"星期五");return 5;
case 5: strcpy(buf,"星期六");return 6;
case 6: strcpy(buf,"星期日");return 0;
}
}
int CheckYearError(int year)
{
if(year<1)
{
return 0;
}
return 1;
}
int CheckMonthError(int month)
{
if(month<1 || month>12)
{
return 0;
}
return 1;
}
int CheckDayError(int year, int month, int day)
{
if(day<1)
{
return 0;
}
if(month==1 || month==3 || month==5 || month==7 || month==8 || month==10 || month==12)
{
if(day>31)
{
return 0;
}
}
if(month==2)
{
if(Leap(year)==1 && day>29)
{
return 0;
}
else if(Leap(year)==0 && day>28)
{
return 0;
}
}
else if(month==4 || month==6 || month==9 || month==11)
{
if(day>30)
{
return 0;
}
}
return 1;
}
void fun1()
{
int year;
printf("
请输入年份:");
fflush(stdin);
scanf("%d",&year);
if(CheckYearError(year)==0)
{
printf("
年份输入错误!");
fflush(stdin);
getchar();
return;
}
if(Leap(year)==1)
{
printf("%d年是闰年!",year);
}
else
{
printf("%d年不是闰年!",year);
}
fflush(stdin);
getchar();
}
void fun2()
{
int year,month,day;
int err=0;
printf("
请输入年,月,日(中间用逗号间隔):");
fflush(stdin);
scanf("%d,%d,%d",&year,&month,&day);
if(CheckYearError(year)==0 || CheckMonthError(month)==0 || CheckDayError(year,month,day)==0)
{
printf("
输入数据有误!");
fflush(stdin);
getchar();
return;
}
char buf[10];
Week(year,month,day,buf);
printf("
%d-%02d-%02d是%s",year,month,day,buf);
fflush(stdin);
getchar();
}
void prt(int year, int month)
{
char buf[10];
int nFirstWeek=Week(year,month,1,buf);
printf("
%d年%d月",year,month);
printf("
日 一 二 三 四 五 六
");
int i,j;
int days=GetDays(year,month);
for(i=0;i {
printf("%5s"," ");
}
for(i=1;i<=days;i++)
{
printf("%5d",i);
nFirstWeek++;
if(nFirstWeek%7==0)
{
printf("
");
}
}
}
void fun3()
{
int year;
printf("
请输入年份:");
fflush(stdin);
scanf("%d,%d",&year);
if(CheckYearError(year)==0)
{
printf("
输入数据有误!");
fflush(stdin);
getchar();
return;
}
int i;
for(i=1;i<=12;i++)
{
prt(year,i);
printf("
");
}
fflush(stdin);
getchar();
}
void fun4()
{
int year,month;
printf("
请输入年,月(中间用逗号间隔):");
fflush(stdin);
scanf("%d,%d",&year,&month);
if(CheckYearError(year)==0 || CheckMonthError(month)==0)
{
printf("
输入数据有误!");
fflush(stdin);
getchar();
return;
}
prt(year,month);
fflush(stdin);
getchar();
}
int main()
{
int sel;
while(1)
{
system("cls");
printf("1---输入年份,判断是否为闰年
");
printf("2---输入年月日,判断该日为星期几
");
printf("3---输入年份,打印该年12个月日历
");
printf("4---输入月份,打印该月日历
");
printf("0---输入0, 退出程序
");
printf("请输入(0--4):");
fflush(stdin);
scanf("%d",&sel);
switch(sel)
{
case 0:
exit(0);
case 1:
fun1();
break;
case 2:
fun2();
break;
case 3:
fun3();
break;
case 4:
fun4();
break;
default:
break;
}
}
return 0;
}
#include
#include
#include
int Leap(int year)
{
if((year%4==0 && year%100!=0) || year%400==0)
{
return 1;
}
else
{
return 0;
}
}
int GetDays(int year, int month)
{
int days[12]={31,28,31,30,31,30,31,31,30,31,30,31};
if(Leap(year)==1)
{
days[1]=29;
}
return days[month-1];
}
int Week(int y, int m, int d, char* buf)
{
if(m==1||m==2)
{
m+=12;
y--;
}
int iWeek=(d+2*m+3*(m+1)/5+y+y/4-y/100+y/400)%7;
switch(iWeek)
{
case 0: strcpy(buf,"星期一");return 1;
case 1: strcpy(buf,"星期二");return 2;
case 2: strcpy(buf,"星期三");return 3;
case 3: strcpy(buf,"星期四");return 4;
case 4: strcpy(buf,"星期五");return 5;
case 5: strcpy(buf,"星期六");return 6;
case 6: strcpy(buf,"星期日");return 0;
}
}
int CheckYearError(int year)
{
if(year<1)
{
return 0;
}
return 1;
}
int CheckMonthError(int month)
{
if(month<1 || month>12)
{
return 0;
}
return 1;
}
int CheckDayError(int year, int month, int day)
{
if(day<1)
{
return 0;
}
if(month==1 || month==3 || month==5 || month==7 || month==8 || month==10 || month==12)
{
if(day>31)
{
return 0;
}
}
if(month==2)
{
if(Leap(year)==1 && day>29)
{
return 0;
}
else if(Leap(year)==0 && day>28)
{
return 0;
}
}
else if(month==4 || month==6 || month==9 || month==11)
{
if(day>30)
{
return 0;
}
}
return 1;
}
void fun1()
{
int year;
printf("
请输入年份:");
fflush(stdin);
scanf("%d",&year);
if(CheckYearError(year)==0)
{
printf("
年份输入错误!");
fflush(stdin);
getchar();
return;
}
if(Leap(year)==1)
{
printf("%d年是闰年!",year);
}
else
{
printf("%d年不是闰年!",year);
}
fflush(stdin);
getchar();
}
void fun2()
{
int year,month,day;
int err=0;
printf("
请输入年,月,日(中间用逗号间隔):");
fflush(stdin);
scanf("%d,%d,%d",&year,&month,&day);
if(CheckYearError(year)==0 || CheckMonthError(month)==0 || CheckDayError(year,month,day)==0)
{
printf("
输入数据有误!");
fflush(stdin);
getchar();
return;
}
char buf[10];
Week(year,month,day,buf);
printf("
%d-%02d-%02d是%s",year,month,day,buf);
fflush(stdin);
getchar();
}
void prt(int year, int month)
{
char buf[10];
int nFirstWeek=Week(year,month,1,buf);
printf("
%d年%d月",year,month);
printf("
日 一 二 三 四 五 六
");
int i,j;
int days=GetDays(year,month);
for(i=0;i
printf("%5s"," ");
}
for(i=1;i<=days;i++)
{
printf("%5d",i);
nFirstWeek++;
if(nFirstWeek%7==0)
{
printf("
");
}
}
}
void fun3()
{
int year;
printf("
请输入年份:");
fflush(stdin);
scanf("%d,%d",&year);
if(CheckYearError(year)==0)
{
printf("
输入数据有误!");
fflush(stdin);
getchar();
return;
}
int i;
for(i=1;i<=12;i++)
{
prt(year,i);
printf("
");
}
fflush(stdin);
getchar();
}
void fun4()
{
int year,month;
printf("
请输入年,月(中间用逗号间隔):");
fflush(stdin);
scanf("%d,%d",&year,&month);
if(CheckYearError(year)==0 || CheckMonthError(month)==0)
{
printf("
输入数据有误!");
fflush(stdin);
getchar();
return;
}
prt(year,month);
fflush(stdin);
getchar();
}
int main()
{
int sel;
while(1)
{
system("cls");
printf("1---输入年份,判断是否为闰年
");
printf("2---输入年月日,判断该日为星期几
");
printf("3---输入年份,打印该年12个月日历
");
printf("4---输入月份,打印该月日历
");
printf("0---输入0, 退出程序
");
printf("请输入(0--4):");
fflush(stdin);
scanf("%d",&sel);
switch(sel)
{
case 0:
exit(0);
case 1:
fun1();
break;
case 2:
fun2();
break;
case 3:
fun3();
break;
case 4:
fun4();
break;
default:
break;
}
}
return 0;
}
全部回答
- 1楼网友:迟山
- 2021-01-26 06:40
还需要吗。。
追问:需要的
追问:需要的
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯