使用#include<time.h>函数库获取系统时间后再将时间存入struct里面
通过二维数组int a[2][12]={{31,28,31,30,31,30,31,31,30,31,30,31},
{31,29,31,30,31,30,31,31,30,31,30,31}};
以及函数
int r (int year)
{
int a;
if(year%4==0&&year%100!=0 ||year%400==0)
{
a=1;
}else{
a=0;
}
return a;
}
a[r(year)][month-1]区分闰年和平年的计算
#include<time.h>
#include<stdio.h>
int r (int year);
struct time{
int year;
int month;
int day;
}tm;
void gettime()
{
time_t timep;
struct tm *p;
time(&timep);
p = localtime(&timep);
//printf("%d-%d-%d %d:%d:%d", (1900 + p->tm_year), (1 + p->tm_mon), p->tm_mday,p->tm_hour,p->tm_min,p->tm_sec);
tm.year=(1900 + p->tm_year);
tm.month=(1 + p->tm_mon);
tm.day=p->tm_mday;
}
int main()
{
gettime();
int year,month,day;
int number;
int y=0,m=0;
int a[2][12]={{31,28,31,30,31,30,31,31,30,31,30,31},
{31,29,31,30,31,30,31,31,30,31,30,31}};
//printf("请输入当前日期\n");
//scanf("%d%d%d",&year,&month,&day);
year=tm.year;
month=tm.month;
day=tm.day;
printf("请问你想求多少天后的日期\n");
scanf("%d",&number);
int num=number;
number+=day;
day=number;
if(day<28)
{
goto out;
}
for(;number>28;month++)
{
if(number>27)
{
number=number-a[r(year)][month-1];
if(month>11)
{
year++;
month=0;
}
day=number;
}
}
out:
printf("%d天后是%d年%d月%d日\n",num,year,month,day);
return 0;
}
int r (int year)
{
int a;
if(year%4==0&&year%100!=0 ||year%400==0)
{
a=1;
}else{
a=0;
}
return a;
}