目录
一年中的第几天
描述
示例 1
示例 2
示例 3
示例 4
提示
方法:闰年判断
给你一个字符串 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
class Solution {
public int dayOfYear(String date) {
String[] strs = date.split("-");
int[] monthVal={31,28,31,30,31,30,31,31,30,31,30,31};
if (isLeapYear(Integer.parseInt(strs[0]))) monthVal[1]=29;//闰年2月则为29天
int month=Integer.parseInt(strs[1]);
int res=0;
for (int i = 1; i < month; i++) {
res+=monthVal[i-1];
}
return res+Integer.parseInt(strs[2]);
}
public boolean isLeapYear(int year) {
if (year % 4 == 0 && year % 100 != 0) {//普通闰年
return true;
} else if (year % 400 == 0) {//世纪闰年
return true;
} else {
return false;
}
}
}