Java解决一年中的第几天
01 题目
-
给你一个字符串
date
,按YYYY-MM-DD
格式表示一个 现行公元纪年法 日期。返回该日期是当年的第几天。示例 1:
输入:date = "2019-01-09" 输出:9 解释:给定日期是2019年的第九天。
示例 2:
输入:date = "2019-02-10" 输出:41
提示:
date.length == 10
date[4] == date[7] == '-'
,其他的date[i]
都是数字date
表示的范围从 1900 年 1 月 1 日至 2019 年 12 月 31 日
02 知识点
- 时间戳
- 日历类,时间格式类
03 我的题解思路
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class dayOfYear {
public static void main(String[] args) {
// 测试数据
System.out.println(dayOfYear("2019-02-10"));
}
public static int dayOfYear(String date) {
int rs=0;//返回值
DateFormat dateFormat=new SimpleDateFormat("yyyy-MM-dd");//设置时间格式
Long end=0l;//输入值的时间戳
Long start=0l;//当年第一天的时间戳
//切割字符串并取年份拼接出当年第一天的字符串
String dateSt=date.split("-")[0]+"-01-01";
try {
//parse方法必须捕获(try-catch)异常,该方法把符合格式的字符串转为日期类
Date dateE=dateFormat.parse(date);
Date dateS=dateFormat.parse(dateSt);
start=dateS.getTime();//从日期类中取时间戳
end=dateE.getTime();
} catch (ParseException e) {
e.printStackTrace();
}
// 时间戳相减获得二者时间差的毫秒数,将毫秒数转为天数并加一,再将long类型转回int类型
return Math.toIntExact((end-start)/1000/60/60/24+1);
}
}
标签:01,Java,第几天,date,2019,import,解决,java
From: https://blog.csdn.net/2302_77182979/article/details/136691359