加载中...
1360-日期之间隔几天(Number of Days Between Two Dates)
发表于:2021-12-03 | 分类: 简单
字数统计: 379 | 阅读时长: 1分钟 | 阅读量:

原文链接: 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 and 2100.

中文题目

请你编写一个程序来计算两个日期之间隔了多少天。

日期以字符串形式给出,格式为 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 年之间的有效日期。

通过代码

高赞题解

image.png


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%

提交历史

提交时间 提交结果 执行时间 内存消耗 语言
上一篇:
1170-比较字符串最小字母出现频次(Compare Strings by Frequency of the Smallest Character)
下一篇:
1361-验证二叉树(Validate Binary Tree Nodes)
本文目录
本文目录