QUESTION:
Given a string date representing a Gregorian calendar date formatted as YYYY-MM-DD, return the day number of the year.
Example 1:
Input: date = “2019-01-09” Output: 9 Explanation: Given date is the 9th day of the year in 2019. Example 2:
Input: date = “2019-02-10” Output: 41 Example 3:
Input: date = “2003-03-01” Output: 60 Example 4:
Input: date = “2004-03-01” Output: 61
Constraints:
date.length == 10 date[4] == date[7] == ‘-‘, and all other date[i]’s are digits date represents a calendar date between Jan 1st, 1900 and Dec 31, 2019.
EXPLANATION:
也就不用造轮子了,直接使用utils中的工具类吧。但是得看一下源码的实现,毕竟jdk中的源码基本已经优化到没法再优化的了。
SOLUTION:
import java.util.*;
class Solution {
public int dayOfYear(String date) {
Calendar c = Calendar.getInstance();
String[] splits = date.split("-");
c.set(Calendar.YEAR, Integer.parseInt(splits[0]));
c.set(Calendar.MONTH, Integer.parseInt(splits[1])-1);
c.set(Calendar.DATE, Integer.parseInt(splits[2]));
return c.get(Calendar.DAY_OF_YEAR);
}
}