1154 一年中的第几天 leetcode

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

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


通常情况下,我们认为 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


提示:


date.length ==10

date[4] == date[7] == '-',其他的 date[i] 都是数字。

date 表示的范围从 1900 年 1 月 1 日至 2019 年 12 月 31 日。


   class Solution {

   public:

       int dayOfYear(string date) {

           int day=0;

           int y=atoi(date.substr(0,4).c_str());

           int m=atoi(date.substr(5,2).c_str());

           int d=atoi(date.substr(8,2).c_str());

           switch(m-1)

           {

                   case 11:day+=30;

                   case 10:day+=31;

                   case 9:day+=30;

                   case 8:day+=31;

                   case 7:day+=31;

                   case 6:day+=30;

                   case 5:day+=31;

                   case 4:day+=30;

                   case 3:day+=31;

                   case 2:day+=((!(y%4)&&y%100)||!(y%400))?29:28;

                   case 1:day+=31;    

           }

           return d+day;

       }  

   };//闰年的定义是:(能被4整除且不能被100整除)或者(能被400整除的数)

目录
相关文章
|
6月前
leetcode-1154:一年中的第几天
leetcode-1154:一年中的第几天
35 0
|
6月前
|
算法
leetcode-1185:一周中的第几天
leetcode-1185:一周中的第几天
51 0
|
1月前
蓝桥杯真题time模块详解 | 顺子日期 星期一
蓝桥杯真题time模块详解 | 顺子日期 星期一
AcWing 3498. 日期差值(每日一题)
AcWing 3498. 日期差值(每日一题)
|
Python
今天是今年的的第几天
今天是今年的的第几天
209 0
|
机器学习/深度学习 存储 算法
《剑指offer》题解——week2
由于需要对结果进行取余,导致`不能使用动态规划`,因为取模导致了dp的运算出现了问题。dp是通过最优子问题来计算出最终结果的,而取模之后就导致计算最优子问题出现了问题,计算出来的`dp[i-j]*j`表面上可能是最大的,但是`dp[i-j]`也是经过取模运算的,从而这会导致`dp[i]`不是由前面的最优子问题推出来的。
74 0
《剑指offer》题解——week2
|
算法 搜索推荐 Java
《剑指offer》题解——week5
《剑指offer》题解——week5
57 0
《剑指offer》题解——week5
|
存储 机器学习/深度学习 算法
《剑指offer》题解——week7
《剑指offer》题解——week7
61 0
《剑指offer》题解——week7
|
算法 Java 索引
《剑指offer》题解——week6
《剑指offer》题解——week6
58 0
《剑指offer》题解——week6