1.一年有365天或者366天(闰年)
public list<String> getYearDate(String year){
list<String> list=new ArrayList<>();
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
long startTime=0;
long endTime=0;
try{
startTime=sdf.parse(year+"01-01").getTime();
endTime=sdf.parse(year+"12-31").getTime();
}catch(Exception e){
logger.error("初始化数据失败",e);
throw e;
}
// 一天的时间
long day=1000*60*60*24;
for(long i=startTime;i<=endTime;i += day){
list.add(sdf.format(new Date(i)));
}
return list;
}
补充资料:
闰年全年366天,平年全年365天。
闰年共有366天(1-12月分别为31天,29天,31天,30天,31天,30天,31天,31天,30天,31天,30天,31天)。
平年共有365天(1-12月分别为31天,28天,31天,30天,31天,30天,31天,31天,30天,31天,30天,31天)。闰年计算方法:
1、非整百年:能被4整除的为闰年。(如2004年就是闰年,2001年不是闰年)
2、整百年:能被400整除的是闰年。(如2000年是闰年,1900年不是闰年)
3、对于数值很大的年份:这年如果能被3200整除,并且能被172800整除则是闰年。
2.检查日期是否满足当前yyyy-MM-dd格式
/**
* 默认时间格式
*/
private static final String DATE_FORMAT = "yyyy-MM-dd";
private static DateTimeFormatter formatter = DateTimeFormatter.ofPattern(DATE_FORMAT);
/**
* 检查日期是否满足当前yyyy-MM-dd格式
*
* @param curDate 当前日期
* @return 是否满足格式
*/
private boolean checkDateFormat(String curDate) {
try {
LocalDate date = LocalDate.parse(curDate, formatter);
String formatDate = date.format(formatter);
return curDate.equals(formatDate);
} catch (Exception e) {
logger.error("curDate parse error", e);
return false;
}
}