2021-12-21每日一題
阿新 • • 發佈: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 }