//获取季度的第一天
static Date getFirstDateOfSeason(Date date) {
//getFirstDayByMonth
return getFirstDayByMonth(getSeasonDate(date)[0])
}
//获取季度的最后一天
static Date getLastDateOfSeason(Date date) {
return getLastDayByMonth(getSeasonDate(date)[2]);
}
//按中国的习惯星期一
static Date getMondayOfWeek(Date date) {
Calendar cal = Calendar.getInstance();
cal.setTime(date);
int dayWeek = cal.get(Calendar.DAY_OF_WEEK);
if (1 == dayWeek) {
cal.add(Calendar.DAY_OF_MONTH, -1);
}
cal.setFirstDayOfWeek(Calendar.MONDAY);
int day = cal.get(Calendar.DAY_OF_WEEK);
cal.add(Calendar.DATE, cal.getFirstDayOfWeek() - day);
return cal.getTime();
}
//周日
static Date getSundayOfWeek(Date date) {
def monday = getMondayOfWeek(date)
Calendar cal = Calendar.getInstance();
cal.setTime(monday);
cal.add(Calendar.DATE, 6);
return cal.getTime();
}
//该月第一天
static Date getFirstDateOfMonth(Date date) {
Calendar c = Calendar.getInstance()
c.setTime(date)
c.set(Calendar.DAY_OF_MONTH, c.getActualMinimum(Calendar.DAY_OF_MONTH))
return c.getTime()
}
//该月最后一天
static Date getLastDateOfMonth(Date date) {
Calendar c = Calendar.getInstance();
c.setTime(date);
c.set(Calendar.DAY_OF_MONTH, c.getActualMaximum(Calendar.DAY_OF_MONTH));
return c.getTime();
}
static Date[] getSeasonDate(Date date) {
Date[] season = new Date[3]
Calendar c = Calendar.getInstance()
c.setTime(date)
int nSeason = getSeason(date)
if (nSeason == 1) {// 第一季度
c.set(Calendar.MONTH, Calendar.JANUARY)
season[0] = c.getTime()
c.set(Calendar.MONTH, Calendar.FEBRUARY)
season[1] = c.getTime()
c.set(Calendar.MONTH, Calendar.MARCH)
season[2] = c.getTime()
} else if (nSeason == 2) {// 第二季度
c.set(Calendar.MONTH, Calendar.APRIL)
season[0] = c.getTime()
c.set(Calendar.MONTH, Calendar.MAY)
season[1] = c.getTime()
c.set(Calendar.MONTH, Calendar.JUNE);
season[2] = c.getTime();
} else if (nSeason == 3) {// 第三季度
c.set(Calendar.MONTH, Calendar.JULY);
season[0] = c.getTime();
c.set(Calendar.MONTH, Calendar.AUGUST);
season[1] = c.getTime();
c.set(Calendar.MONTH, Calendar.SEPTEMBER);
season[2] = c.getTime();
} else if (nSeason == 4) {// 第四季度
c.set(Calendar.MONTH, Calendar.OCTOBER);
season[0] = c.getTime();
c.set(Calendar.MONTH, Calendar.NOVEMBER);
season[1] = c.getTime();
c.set(Calendar.MONTH, Calendar.DECEMBER);
season[2] = c.getTime();
}
return season;
}
static int getSeason(Date date) {
int season = 0;
Calendar c = Calendar.getInstance();
c.setTime(date);
int month = c.get(Calendar.MONTH);
switch (month) {
case Calendar.JANUARY:
case Calendar.FEBRUARY:
case Calendar.MARCH:
season = 1;
break;
case Calendar.APRIL:
case Calendar.MAY:
case Calendar.JUNE:
season = 2;
break
case Calendar.JULY:
case Calendar.AUGUST:
case Calendar.SEPTEMBER:
season = 3;
break;
case Calendar.OCTOBER:
case Calendar.NOVEMBER:
case Calendar.DECEMBER:
season = 4;
break;
default:
break;
}
return season;
}
Java 根据日期获取年,季度,月,周的第一天和最后一天工具方法
最新推荐文章于 2024-01-31 17:16:37 发布