原文链接: https://leetcode-cn.com/problems/number-of-days-between-two-dates
英文原文
Write a program to count the number of days between two dates.
The two dates are given as strings, their format is YYYY-MM-DD
as shown in the examples.
Example 1:
Input: date1 = "2019-06-29", date2 = "2019-06-30" Output: 1
Example 2:
Input: date1 = "2020-01-15", date2 = "2019-12-31" Output: 15
Constraints:
- The given dates are valid dates between the years
1971
and2100
.
中文题目
请你编写一个程序来计算两个日期之间隔了多少天。
日期以字符串形式给出,格式为 YYYY-MM-DD
,如示例所示。
示例 1:
输入:date1 = "2019-06-29", date2 = "2019-06-30" 输出:1
示例 2:
输入:date1 = "2020-01-15", date2 = "2019-12-31" 输出:15
提示:
- 给定的日期是
1971
年到2100
年之间的有效日期。
通过代码
高赞题解
c代码:
int isleap(int y){
return y%4==0 && y%100!=0 || y%400==0;
}
int tab[]={-1,31,28,31,30,31,30,31,31,30,31,30,31};
int getdate(char *date){
int y,m,d,r=0;
sscanf(date, "%d-%d-%d", &y,&m,&d);
for(int i=1970; i<y;i++)
if(isleap(i)) r+= 366;
else r+= 365;
for(int i=1;i<m;i++){
r+=tab[i];
if(i==2 && isleap(y)) r+=1;
}
r+=d;
return r;
}
#define intfabs(x) ((x)<0?-(x):(x))
int daysBetweenDates(char * date1, char * date2){
return intfabs(getdate(date1)-getdate(date2) );
}
统计信息
通过次数 | 提交次数 | AC比率 |
---|---|---|
9054 | 17896 | 50.6% |
提交历史
提交时间 | 提交结果 | 执行时间 | 内存消耗 | 语言 |
---|