1. 程式人生 > 其它 >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 }