当前位置: 代码迷 >> 综合 >> leetcode-Algorithms-1154|一年中的第几天
  详细解决方案

leetcode-Algorithms-1154|一年中的第几天

热度:5   发布时间:2023-12-12 12:39:47.0

原题

给你一个按 YYYY-MM-DD 格式表示日期的字符串 date,请你计算并返回该日期是当年的第几天。通常情况下,我们认为 11 日是每年的第 1 天,12 日是每年的第 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 表示的范围从 190011 日至 20191231 日。来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/day-of-the-year
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

思路

简单题

代码

package leetcode.Algorithms;public class Solution_1154 {
    public static void main(String[] args) {
    String dayOfYear = "2003-03-01";System.out.println(dayOfYear(dayOfYear));}public static int dayOfYear(String date) {
    int Run[] = {
    31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};int Ping[] = {
    31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};String[] strings = date.split("-");int year = Integer.valueOf(strings[0]);int monnth = Integer.valueOf(strings[1]);int day = Integer.valueOf(strings[2]);//如果是闰年int sum = 0;if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {
    for (int i = 1; i < monnth; i++) {
    sum = sum + Run[i-1];}sum = sum + day ;} else {
    for (int i = 1; i < monnth; i++) {
    sum = sum + Ping[i-1];}sum = sum + day ;}return sum;}
}