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;
}
//---------------------------------------------------------------------------
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);
}
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);
}
- 3 回答
- 0 关注
- 369 浏览
添加回答
举报
