记录: 项目中特定场景使用
public class SolutionUtil {
/**
* 判断参数日期在当年是第多少天
* @param date
* @return
*/
public static int dayOfYear(Date date) {
//格式化时间
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
String format = sdf.format(date);
/**
* 首先获取年月日
*/
String[] split = format.split("-");
/**
* 年
*/
int year = Integer.parseInt(split[0]);
/**
* 月
*/
int month = Integer.parseInt(split[1]);
/**
* 日
*/
int day = Integer.parseInt(split[2]);
/**
* 创建一个12个月的天数数组
*/
int[] allDate = {31,28,31,30,31,30,31,31,30,31,30,31};
/**
* 判断是否是闰年,如果是闰年,则二月是29天
*/
if (year % 400 == 0 || (year % 4 == 0 && year % 100 != 0)){
++allDate[1];
}
/**
* 定义一个天数
*/
int days = 0;
/**
* 循环一个i,拿到本月前一个月的数组坐标,进行天数相加
*/
for (int i = 0; i < month - 1; i++) {
days += allDate[i];
}
/**
* 本月前所有天数的和 + 本月的天数 return 这是一年中的第几天。
*/
return days + day;
}
}