不会有人不吃香菜吧 2021-10-06 13:23 采纳率: 73.7%
浏览 100
已结题

C语言:用户输入包含年,月,日的日期,请计算两个日期间相隔的天数是(有两个用例没有通过)


#include<stdio.h>
int sum1(int n,int m,int d);
int main()
{
    int q,w,e,r,t,y;
    scanf("%d %d %d %d %d %d",&q,&w,&e,&r,&t,&y);
    int v;
    v = sum1(r, t, y)-sum1(q, w, e);
    printf("采集时间为%d天\n",v);
    
}
int sum1(int n,int m,int d)
{
//输入年月日
    int i;
    int cnt =0;
    scanf("%d %d %d",&n,&m,&d);
//计算闰年的次数,闰年有多少次就要加多少天
    int a[n];
    for (i=1; i<n+1; i++)
{
        a[i] = i;
        if((a[i]%4==0&&a[i]%100!=0)||a[i]%400==0)
            cnt++;
}
    if ((n%4==0&&n%100!=0)||n%400==0)
{
        if(m<3&&(m!=2&&d!=29)){
            cnt = cnt - 1;}
}
//计算普通年的天数
    int sum1;
    sum1 = 365 * n;
//计算月的数量,由于前面已经计算出了闰年次数,所以月份不用考虑闰年的29int sum2 = 0;
    int month[12]={31,28,31,30,31,30,31,31,30,31,30,31};
    for(i=0;i<m;i++)
{
    sum2 = sum2 + month[i];
}
//计算天数
    int sum3 = d;
    int sum;
    sum = sum1 + sum2 +sum3 +cnt;
    return sum;
}
  • 写回答

2条回答 默认 最新

  • qzjhjxj 2021-10-06 14:48
    关注

    供参考:

    //用户输入包含年,月,日的日期,请计算两个日期间相隔的天数
    
    #include <stdio.h>
    int Sum_days(int y, int m, int d, int y1, int m1, int d1)
    {
        int M[12] = { 31,28,31,30,31,30,31,31,30,31,30,31 };
        int s, year, month, flg;
        for (month = m, year = y, s = 0; ; ++month > 12 ? (month = 1, year++) : month)
        {
            if (year == y1 && month == m1) break;
            flg = 0;
            if (month == 2 && ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0))
                flg = 1;
            s += M[month - 1];
            if (flg == 1) s += 1;
        }
        s += (d1 - d);
        return s;
    }
    int main()
    {
        int y, m, d, y1, m1, d1;
        printf("Input yyyy mm dd  yyyy1 mm1 dd1:");
        scanf("%d%d%d%d%d%d", &y, &m, &d, &y1, &m1, &d1);
        printf("%d", Sum_days(y, m, d, y1, m1, d1));
        return 0;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 10月14日
  • 已采纳回答 10月6日
  • 修改了问题 10月6日
  • 创建了问题 10月6日

悬赏问题

  • ¥65 永磁型步进电机PID算法
  • ¥15 sqlite 附加(attach database)加密数据库时,返回26是什么原因呢?
  • ¥88 找成都本地经验丰富懂小程序开发的技术大咖
  • ¥15 如何处理复杂数据表格的除法运算
  • ¥15 如何用stc8h1k08的片子做485数据透传的功能?(关键词-串口)
  • ¥15 有兄弟姐妹会用word插图功能制作类似citespace的图片吗?
  • ¥15 latex怎么处理论文引理引用参考文献
  • ¥15 请教:如何用postman调用本地虚拟机区块链接上的合约?
  • ¥15 为什么使用javacv转封装rtsp为rtmp时出现如下问题:[h264 @ 000000004faf7500]no frame?
  • ¥15 乘性高斯噪声在深度学习网络中的应用