本文主要是介绍【LeetCode】1154.一年中的第几天,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题目描述:
给你一个字符串 date
,按 YYYY-MM-DD
格式表示一个 现行公元纪年法 日期。返回该日期是当年的第几天。
示例 1:
输入:date = "2019-01-09"
输出:9
解释:给定日期是2019年的第九天。
示例 2:
输入:date = "2019-02-10"
输出:41
提示:
- date.length == 10
- date[4] == data[7] == ‘-’,其他的 date[i] 都是数字
- date 表示的范围从 1900 年 1 月 1 日至 2019 年 12 月 31 日
思路分析:
1.首先根据读入的字符串获取年月日
2.判断该年是否为闰年,如果为闰年,2月有29天;否则2月有28天。
3.从该年的1月1日开始遍历,计算输入的日期是该年的第几天。
程序代码:
public class LC1154_一年中的第几天 {public static int[] days = {0,31,28,31,30,31,30,31,31,30,31,30,31};public static void main(String[] args) {String date = "2000-12-04";System.out.println(dayOfYear(date));}public static int dayOfYear(String date) {//1.首先获取时间的年月日int year = Integer.valueOf(date.substring(0,4));int month = Integer.valueOf(date.substring(5,7));int day = Integer.valueOf(date.substring(8,10));//2.判断是闰年还是平年if(isLeap(year)) days[2] = 29;//3.得到是该年的哪一天int num_days = 0;for (int i=0;i<month;i++){num_days = num_days+days[i];}return num_days+day;}// 判断是否为闰年public static boolean isLeap(int year){if((year%4==0 && year%100!=0) || year%400==0)return true;return false;}
}
这篇关于【LeetCode】1154.一年中的第几天的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!