#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;
//计算月的数量,由于前面已经计算出了闰年次数,所以月份不用考虑闰年的29天
int 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;
}
C语言:用户输入包含年,月,日的日期,请计算两个日期间相隔的天数是(有两个用例没有通过)
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
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无用
悬赏问题
- ¥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 乘性高斯噪声在深度学习网络中的应用