鱼C论坛

 找回密码
 立即注册
查看: 2679|回复: 6

计算天数

[复制链接]
发表于 2016-12-13 21:41:45 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 阿撩 于 2016-12-13 21:45 编辑
#include <stdio.h>
long sum(int y,int m,int d)
{
        int x[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
        long i,s=0;
        for(i=1;i<y;i++)
        {
                if(i%4==0&&i%100!=0||i%400==0)
                {
                        s+=366;
                }                
                else s+=365;
        }
        for(i=1;i<m;i++)
        {
                s+=x[i];
        }
        s+=d;
        return s;
}
void main()
{
        int y1,m1,d1,y2,m2,d2;
        long s1,s2;
        printf("输入年 月 日:");
        scanf("%d%d%d",&y1,&m1,&d1);
        printf("输入年 月 日:");
        scanf("%d%d%d",&y2,&m2,&d2);
        s1=sum(y1,m1,d1);
        s2=sum(y2,m2,d2);
        printf("相差天数:%ld\n",s2-s1);
}
求问这个程序哪里出问题了呢?
输入:2010 10 26
输入:2016 12 13
程序运行出来如图:是2239天
但是我自己手算了一下发现是2040天
求问这是怎么回事?
QQ截图20161213213628.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-12-14 00:27:45 | 显示全部楼层
首先,文中写错了,应该是2240天。
其次,闰年二月有29天!!!也就说计算s2时少加了2016年二月的第29天。
如果前后都是平年的话就没问题了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-12-14 02:31:49 | 显示全部楼层
给函数加个判断即可
参数为闰年时x〔3〕=29
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-12-14 20:43:27 | 显示全部楼层
zzzz76 发表于 2016-12-14 02:31
给函数加个判断即可
参数为闰年时x〔3〕=29

可是我在判断它为闰年的时候加得就是366天,而不是闰年加得是365天,已经把二月给算进去了,不是么?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-12-15 17:26:25 | 显示全部楼层
闰年2月只有29天
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-12-15 19:37:44 | 显示全部楼层
风吹雨起#泪花落 发表于 2016-12-14 00:27
首先,文中写错了,应该是2240天。
其次,闰年二月有29天!!!也就说计算s2时少加了2016年二月的第29天。 ...

嗯嗯 写错了 不好意思 是2240天。
但是我已经给出条件如果是闰年就加366天了 已经把二月的29天算进去了 不是么?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-12-16 00:08:55 | 显示全部楼层
阿撩 发表于 2016-12-15 19:37
嗯嗯 写错了 不好意思 是2240天。
但是我已经给出条件如果是闰年就加366天了 已经把二月的29天算进去了  ...

我知道的,可是!!你只加到2015年,2016这年你只按月和天加了,并未按年(366天)加,所以我才说如果前后都是平年就没问题了!
当然了,三楼也是对的,你可以再思考一下。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-27 17:53

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表