|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
这是我的代码#include <stdio.h>
int main(void)
{
int year[4]={0},month[4]={0},day[4]={0};//日期
int yue[13]={31,28,31,30,31,30,31,31,30,31,30,31};//月份
long long int all;
printf("请输入你的生日(如1988-05-20):");
scanf("%d-%d-%d",&year[0],&month[0],&day[0]);
fflush(stdin);
printf("请输入今年日期(如2016-03-28):");
scanf("%d-%d-%d",&year[1],&month[1],&day[1]);
fflush(stdin);
year[2]=year[1]-year[0];//计算过了几年
year[3]=(year[1]-1)/4-year[0]/4;//计算闰年数量
yue[1] = (year[1] % 400 == 0 || (year[1] % 4 == 0 && year[1] % 100 != 0)) ? 29 : 28;
if(month[1]>month[0])//今年月份大于出生月份
{
for(int i=month[1],j=month[0];i>j;j++)
{
month[2]+=yue[j];//统计出生月到今年月的日子
}
}
else if(month[0]>month[1])//出生月份大于今年月份
{
for(int i=month[0],j=month[1];i>j;j++)
{
month[2]+=-yue[j];//统计出生月到今年月的日子
}
}
day[2]=day[1]-day[0];//计算过了几日
all=year[3]*366+(year[2]-year[3])*365+month[2]+day[2];
printf("你在这个世界上总共生存了%lld天");
return 0;
}
这是小甲鱼的代码#include <stdio.h>
int main()
{
long count = 0; // count用于存放一共活了多少天
int year1, year2; // year1是你的生日年份,year2是今天的年份
int month1, month2;
int day1, day2;
int days[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
printf("请输入你的生日(如1988-05-20):");
scanf("%d-%d-%d", &year1, &month1, &day1);
printf("请输入今年日期(如2016-03-28):");
scanf("%d-%d-%d", &year2, &month2, &day2);
while (year1 <= year2)
{
days[1] = (year1 % 400 == 0 || (year1 % 4 == 0 && year1 % 100 != 0)) ? 29 : 28;
while (month1 <= 12)
{
while (day1 <= days[month1 - 1])
{
if (year1 == year2 && month1 == month2 && day1 == day2)
{
goto FINISH; // 跳出多层循环才被迫用goto语句
}
day1++;
count++;
}
day1 = 1;
month1++;
}
month1 = 1;
year1++;
}
FINISH: printf("你在这个世界上总共生存了%d天\n", count);
return 0;
}
日期都是输入
1988-05-20
2016-03-28
为何我和小甲鱼计算出来的天数差了九天?
输出结果我是10165天
小甲鱼是10174天
#include <stdio.h>
int main(void)
{
int year[4]={0},month[4]={0},day[4]={0};//日期
int yue[13]={31,28,31,30,31,30,31,31,30,31,30,31};//月份
long long int all;
printf("请输入你的生日(如1988-05-20):");
scanf("%d-%d-%d",&year[0],&month[0],&day[0]);
fflush(stdin);
printf("请输入今年日期(如2016-03-28):");
scanf("%d-%d-%d",&year[1],&month[1],&day[1]);
fflush(stdin);
year[2]=year[1]-year[0]-1;//计算过了几年
year[3]=year[2]/4;//计算闰年数量
/*yue[1] = (year[1] % 400 == 0 || (year[1] % 4 == 0 && year[1] % 100 != 0)) ? 29 : 28;
if(month[1]>month[0])//今年月份大于出生月份
{
for(int i=month[1],j=month[0];i>j;j++)
{
month[2]+=yue[j];//统计出生月到今年月的日子
}
}
else if(month[0]>month[1])//出生月份大于今年月份
{
for(int i=month[0],j=month[1];i>j;j++)
{
month[2]+=-yue[j];//统计出生月到今年月的日子
}
} */
yue[1] = (year[0] % 400 == 0 || (year[1] % 4 == 0 && year[1] % 100 != 0)) ? 29 : 28;
month[2]=yue[month[0]-1]-day[0];
for(int i=month[0];i<12;i++)month[2]+=yue[i];
yue[1] = (year[1] % 400 == 0 || (year[1] % 4 == 0 && year[1] % 100 != 0)) ? 29 : 28;
month[2]+=day[1];
for(int i=0;i<month[1]-1;i++)month[2]+=yue[i];
all=year[3]*366+(year[2]-year[3])*365+month[2];//+day[2];
printf("你在这个世界上总共生存了%lld天",all);
return 0;
}
|
|