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 }