leetcode-1154:一年中的第几天

简介: leetcode-1154:一年中的第几天

题目

题目链接

给你一个字符串 date ,按 YYYY-MM-DD 格式表示一个 现行公元纪年法 日期。请你计算并返回该日期是当年的第几天。

通常情况下,我们认为 1 月 1 日是每年的第 1 天,1 月 2 日是每年的第 2 天,依此类推。每个月的天数与现行公元纪年法(格里高利历)一致。

示例 1:

输入:date = "2019-01-09"
输出:9

示例 2:

输入:date = "2019-02-10"
输出:41

示例 3:

输入:date = "2003-03-01"
输出:60

示例 4:

输入:date = "2004-03-01"
输出:61

解题

方法一:

先把年月日取出来。然后判断是否为闰年。获得数组amount存放每个月的日子。

然后根据月和日计算出第几天

class Solution {
public:
    int dayOfYear(string date) {
        int year=stoi(date.substr(0,4));
        int month=stoi(date.substr(5,2));
        int day=stoi(date.substr(8,2));
        vector<int> amount={31,28,31,30,31,30,31,31,30,31,30};
        if(year%400==0||year%4==0&&year%100!=0){
            amount[1]++;
        }
        int res=0;
        for(int i=0;i<month-1;i++){
            res+=amount[i];
        }
        return res+day;
    }
};
相关文章
|
6月前
|
算法
leetcode-1185:一周中的第几天
leetcode-1185:一周中的第几天
51 0
|
1月前
蓝桥杯真题time模块详解 | 顺子日期 星期一
蓝桥杯真题time模块详解 | 顺子日期 星期一
AcWing 3498. 日期差值(每日一题)
AcWing 3498. 日期差值(每日一题)
|
6月前
计算某年某月某日是星期几
计算某年某月某日是星期几
|
Python
今天是今年的的第几天
今天是今年的的第几天
207 0
|
算法 Java 索引
《剑指offer》题解——week1
思路:定义一个哈希表,遍历一次数组,利用哈希表对每个元素进行标记。若当前元素被标记过了,则该元素重复。 **时间复杂度:**`O(n)` **方法二:原地交换** 主要思想是把每个数放到对应的位置上,即让 `nums[i] = i`。 前往后遍历数组中的所有数,假设当前遍历到的数是 `nums[i]=x`,那么: - 如果`x != i && nums[x] == x`,则说明 `x`出现了多次,直接返回 `x`即可; - 如果`nums[x] != x`,那我们就把 `x` 交换
91 0
《剑指offer》题解——week1
|
Java
《剑指offer》题解——week3
《剑指offer》题解——week3
64 0
《剑指offer》题解——week3
|
算法 Java 索引
《剑指offer》题解——week6
《剑指offer》题解——week6
55 0
《剑指offer》题解——week6
|
机器学习/深度学习 存储 算法
《剑指offer》题解——week4
《剑指offer》题解——week4
117 0
《剑指offer》题解——week4
|
存储 机器学习/深度学习 算法
《剑指offer》题解——week7
《剑指offer》题解——week7
60 0
《剑指offer》题解——week7