为了账号安全,请及时绑定邮箱和手机立即绑定

求写一个关于Nextdate函数的内容,在线等~

求写一个关于Nextdate函数的内容,在线等~

C PHP
Smart猫小萌 2021-12-10 03:02:20
写一个C语言程序 重点考虑2月份特殊情况的NextDate函数有三个变量month,day,和year的函数,输出为输入日期后一天的日期。例如,输入为1989年5月16日,则该函数的输出为1989年5月17日。要求输入变量month,day,year均为整数值,并满足一下条件:条件一:1<=month<=12条件二 1<=day<=31条件三 1912<=year<=2050
查看完整描述

3 回答

?
慕斯王

TA贡献1864条经验 获得超2个赞

//---------------------------------------------------------------------------

#include <stdio.h>
int chk(int y,int m,int d)
{
if (d<1||d>31) {
return 0;
}
else if (m<1||m>12) {
return 0;
}
else if (y<1912||y>2500) {
return 0;
}
return 1;
}
int isy(int y)
{
return (y%4==0&&y%100||y%400);
}
int ilm(int m )
{
return (m==4||m==6||m==9||m==11);
}
int ihm(int m)
{
return (m==1||m==3||m==5||m==7||m==8||m==10||m==12);
}
int main(int argc, char* argv[])
{
int year,month,day;
printf("Year=");
scanf("%d",&year);
printf("Month=");
scanf("%d",&month);
printf("Day=");
scanf("%d",&day);
if (chk(year,month,day)) {
if ((day==28&&month==2&&!isy(year))||(day==29&&month==2&&isy(year))) {
day=1;
month=3;

}
else if (day==30&&ilm(month)||day==31&&ihm(month)) {
day=1;
month++;

}
else day++;
if (month>12) {
month=1;
++year;
}
printf("Next date:%d-%d-%d\n",year,month,day);
}
else printf("日期不合法");
return 0;
}
//---------------------------------------------------------------------------



查看完整回答
反对 回复 2021-12-13
?
江户川乱折腾

TA贡献1851条经验 获得超5个赞

NextDate(int year,int month,int day)
{
int a[12]={31,28,31,30,31,30,31,31,30,31,30,31};
int b[12]={31,29,31,30,31,30,31,31,30,31,30,31};
int y,m,d;
if(year%4||year%100&&!(year%400))//闰年
{
if(b[month-1]>day)
{d=day+1;m=month;y=year;}
else
{d=1;m=month+1;y=year;}
}
else
{
if(a[month-1]>day)
{d=day+1;m=month;y=year;}
else
{d=1;m=month+1;y=year;}
}
if(m>12){m=m-12;y++;}
printf("%d年%d月%d日\n",y,m,d);
}



查看完整回答
反对 回复 2021-12-13
?
慕婉清6462132

TA贡献1804条经验 获得超2个赞

NextDate(int year,int month,int day)
{
int a[12]={31,28,31,30,31,30,31,31,30,31,30,31};
int b[12]={31,29,31,30,31,30,31,31,30,31,30,31};
int y,m,d;
if(year%4||year%100&&!(year%400))//闰年
{
if(b[month-1]>day)
{d=day+1;m=month;y=year;}
else
{d=1;m=month+1;y=year;}
}
else
{
if(a[month-1]>day)
{d=day+1;m=month;y=year;}
else
{d=1;m=month+1;y=year;}
}
if(m>12){m=m-12;y++;}
printf("%d年%d月%d日\n",y,m,d);
}



查看完整回答
反对 回复 2021-12-13
  • 3 回答
  • 0 关注
  • 369 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号