
怎么计算某年的某月某日到某年某月某日多少天
1个回答
展开全部
这个问题可以分解为
(y1,m1,d1)到(y2,m2,d2)有多少天转化为(y1,m1,d1)到(1,1,1)的天数-(y2,m2,d2)到(1,1,1)的天数
至于(y,m,d)到(1,1,1)的天数可以参考我这个答案
https://zhidao.baidu.com/question/245140538601498844
#include <stdio.h>
int IsLeapYear(int year)
{
return ((year % 4 == 0) && (year % 100 != 0) || year % 400 == 0);
}
int dayOfMonth(int year, int month)
{
int day = 0;
switch(month) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
day = 31;
break;
case 2:
day = 28 + IsLeapYear(year);
break;
default:
day = 30;
break;
}
return day;
}
int days(int y, int m, int d)
{
int i, j;
int total = 0;
for(i = 1; i <= y -1;i++)
{
//1.1 - 12.23
for(j = 1;j <= 12;j++)
total += dayOfMonth(i, j);
}
//1 - m-1
for(j = 1;j <= m-1;j++)
total += dayOfMonth(y, j);
total += d;
return total;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询