//此为获取时间戳指定时间是一年的第几周 Calender public class DateUtils { public static Integer getWeekOfYear(Date date) { Calendar calendar = Calendar.getInstance(); calendar.setFirstDayOfWeek(Calendar.MONDAY); calendar.setTime(date); int week = calendar.get(Calendar.WEEK_OF_YEAR); int mouth = calendar.get(Calendar.MONTH); // JDK think 2015-12-31 as 2016 1th week //如果月份是12月,且求出来的周数是第一周,说明该日期实质上是这一年的第53周,也是下一年的第一周 if (mouth >= 11 && week <= 1) { week += 52; } return week; } public static Integer getYearOfDate(Date date) { Calendar calendar = Calendar.getInstance(); calendar.setTime(date); return calendar.get(Calendar.YEAR); } public static Integer weeksBetween(Date fromDate, Date toDate) { if (fromDate.before(toDate)) { Date temp = fromDate; fromDate = toDate; toDate = temp; } Integer weekNum = (getWeekOfYear(fromDate) - getWeekOfYear(toDate)) + (getYearOfDate(fromDate) - getYearOfDate(toDate)) * 52; return ++weekNum; } public static void main(String[] args) { //此为获取 2021年1月10是2021年的第几周 String formDateString = "2021-01-1 "; String toDateString = "2021-01-10 "; SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd "); try { Date formDate = sdf.parse(formDateString); Date toDate = sdf.parse(toDateString); System.out.println(weeksBetween(formDate, toDate)); } catch (ParseException e) { e.printStackTrace(); } } }
获取指定指定时间是今年的第几个星期(日期可调)
最新推荐文章于 2023-12-25 16:30:09 发布