2021-12-21每日一题

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

 

提示:

  • date.length == 10
  • date[4] == date[7] == '-',其他的 date[i] 都是数字
  • date 表示的范围从 1900 年 1 月 1 日至 2019 年 12 月 31 日
 1 public class DayOfYear {
 2     public int dayOfYear(String date) {
 3         int year=Integer.parseInt(date.substring(0,4));
 4         int month=Integer.parseInt(date.substring(5,7));
 5         int day=Integer.parseInt(date.substring(8));
 6         //分别罗列闰年和非闰年的月份天数
 7         int[] num1={31,28,31,30,31,30,31,31,30,31,30,31};
 8         int[] num2={31,29,31,30,31,30,31,31,30,31,30,31};
 9         int ans=0;
10         if ((year%4==0&&year%100!=0)||year%400==0){
11             for (int i = 0; i < month-1; i++) {
12                 ans+=num2[i];
13             }
14             return ans+day;
15         }
16         else{
17             for (int i = 0; i < month-1; i++) {
18                 ans+=num1[i];
19             }
20             return ans+day;
21         }
22     }
23 
24     public static void main(String[] args) {
25         System.out.println(new DayOfYear().dayOfYear("2019-01-09"));
26     }
27 }

 

上一篇:洛谷P2010回文日期 一道有意思的题目 解题思路通俗易懂


下一篇:测试用例更新问题