All Downloads are FREE. Search and download functionalities are using the official Maven repository.

g1101_1200.s1154_day_of_the_year.Solution Maven / Gradle / Ivy

There is a newer version: 1.38
Show newest version
package g1101_1200.s1154_day_of_the_year;

// #Easy #String #Math #2023_06_01_Time_15_ms_(31.55%)_Space_44.4_MB_(22.53%)

/**
 * 1154 - Day of the Year\.
 *
 * Easy
 *
 * Given a string `date` representing a [Gregorian calendar](https://en.wikipedia.org/wiki/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
 *
 * **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 31th, 2019.
**/
public class Solution {
    public int dayOfYear(String date) {
        int[] monthDays = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
        String[] dateArr = date.split("-");
        int year = Integer.parseInt(dateArr[0]);
        int month = Integer.parseInt(dateArr[1]);
        int day = Integer.parseInt(dateArr[2]);
        int dayCount = 0;
        boolean leapYear = ((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0);
        for (int i = 1; i < month; i++) {
            dayCount += monthDays[i];
        }
        dayCount += day;
        if (leapYear && month > 2) {
            dayCount++;
        }
        return dayCount;
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy