|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
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;
- }
复制代码
|
|