/**
* @Title: startTimeOfDay
* @Description: 获取指定时间当天的开始时间
* @param date
* @return
* @author 姬於宏 ji.yuhong@mayi888.com
*/
public static Date startTimeOfDay(Date date){
if(date != null){
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.set(Calendar.HOUR_OF_DAY, 0);
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.SECOND, 0);
calendar.set(Calendar.MILLISECOND, 0);
return calendar.getTime();
}
return null;
}
public static Date endTimeOfDay(Date date){
if(date == null)
return null;
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.set(Calendar.HOUR_OF_DAY,23);
calendar.set(Calendar.MINUTE,59);
calendar.set(Calendar.SECOND,59);
calendar.set(Calendar.MILLISECOND,999);
return calendar.getTime();
}
/**
* @Description:得到一年中的第几周
* @param date
* @return
*/
public static int getWeekOfYear(Date date){
Calendar calendar = Calendar.getInstance();
calendar.setFirstDayOfWeek(Calendar.MONDAY); //第一天是周一
calendar.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY); //第一天是周一
calendar.setMinimalDaysInFirstWeek(7); //一周至少有7天
calendar.setTime(date);//现在时间 时间必须放最后边
return calendar.get(Calendar.WEEK_OF_YEAR);
}
/**
*
* @Description:得到一年中的第几个月
* @return
* @author huang alin
*/
public static int getMonthOfYear(Date date){
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
return calendar.get(Calendar.MONTH)+1;
}
/**
*
* @Description:得到一年中的第几周
* @return
* @author huang alin
*/
public static int getYear(Date date){
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
return calendar.get(Calendar.YEAR);
}
/**
* @Title: getYearStartDateTime
* @Description: 获取给定时间 所属年的开始时间
* @param date
* @return
*/
public static Date getYearStartDateTime(Date date){
Calendar cal = Calendar.getInstance();
cal.setTime(date);
cal.set(Calendar.MONTH, 0);
cal.set(Calendar.DATE, 1);
return startTimeOfDay(cal.getTime());
}
/**
* 获取一个月的天数
* @param year
* @param month
* @return
*/
public static int getDaysByYearMonth(int year, int month) {
Calendar a = Calendar.getInstance();
a.set(Calendar.YEAR, year);
a.set(Calendar.MONTH, month - 1);
a.set(Calendar.DATE, 1);
a.roll(Calendar.DATE, -1);
int maxDate = a.get(Calendar.DATE);
return maxDate;
}
/**
*获取当月最后一天的23:59:59
*/
public static Date getMonthEndDay(Date time) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(time);
calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMaximum(Calendar.DAY_OF_MONTH));
calendar.set(Calendar.HOUR_OF_DAY,23);
calendar.set(Calendar.MINUTE,59);
calendar.set(Calendar.SECOND,59);
calendar.set(Calendar.MILLISECOND,0);
return calendar.getTime();
}
/**
* 获取当月第一天的0:00:00
*/
public static Date getMonthStartDay(Date time){
Calendar calendar=Calendar.getInstance();
calendar.setTime(time);
calendar.set(Calendar.DAY_OF_MONTH,1);
return startTimeOfDay(calendar.getTime());
}
/**
* 获取上周第一天的0:00:00
*/
public static Date getLastWeekFirstDay(Date time){
Calendar calendar=Calendar.getInstance();
calendar.setTime(time);
calendar.setFirstDayOfWeek(Calendar.MONDAY);
calendar.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
calendar.set(Calendar.HOUR_OF_DAY, 0);
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.SECOND, 0);
calendar.set(Calendar.MILLISECOND, 0);
return new Date(calendar.getTime().getTime()-1000*60*60*24*7);
}
/**
* 获取上一周最后一天的23:59:59
*/
public static Date getLastWeekEndDay(Date time){
Calendar calendar=Calendar.getInstance();
calendar.setTime(time);
calendar.setFirstDayOfWeek(Calendar.MONDAY);
calendar.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);
calendar.set(Calendar.HOUR_OF_DAY, 23);
calendar.set(Calendar.MINUTE, 59);
calendar.set(Calendar.SECOND, 59);
calendar.set(Calendar.MILLISECOND, 0);
return new Date(calendar.getTime().getTime()-1000*60*60*24*7);
}
public static Date getLastMonthStartDay(Date time){
Calendar calendar=Calendar.getInstance();
calendar.setTime(time);
calendar.add(Calendar.MONTH,-1);
calendar.set(Calendar.DAY_OF_MONTH,1);
calendar.set(Calendar.HOUR_OF_DAY, 0);
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.SECOND, 0);
calendar.set(Calendar.MILLISECOND, 0);
return calendar.getTime();
}
/**
* 获取上个月最后一天的23:59:59
* @param time
* @return
*/
public static Date getLastMonthEndDay(Date time){
Calendar calendar=Calendar.getInstance();
calendar.setTime(time);
calendar.set(Calendar.DAY_OF_MONTH,0);
calendar.set(Calendar.HOUR_OF_DAY, 23);
calendar.set(Calendar.MINUTE, 59);
calendar.set(Calendar.SECOND, 59);
calendar.set(Calendar.MILLISECOND, 0);
return calendar.getTime();
}
/**
* 获取下个月的最后一天的23:59:59
* @param time
* @return
*/
public static Date getAfterMonthEndDay(Date time){
Calendar calendar=Calendar.getInstance();
calendar.setTime(time);
calendar.add(Calendar.MONTH,1);
calendar.set(Calendar.DAY_OF_MONTH,calendar.getActualMaximum(Calendar.DAY_OF_MONTH));
calendar.set(Calendar.HOUR_OF_DAY,23);
calendar.set(Calendar.MINUTE, 59);
calendar.set(Calendar.SECOND, 59);
calendar.set(Calendar.MILLISECOND, 0);
return calendar.getTime();
}
/**
* 获取前一天的23:59:59
* @param time
* @return
*/
public static Date getUpEndDay(Date time){
Calendar calendar =Calendar.getInstance();
calendar.setTime(time);
calendar.add(Calendar.DAY_OF_MONTH, -1);
calendar.set(Calendar.HOUR_OF_DAY, 23);
calendar.set(Calendar.MINUTE, 59);
calendar.set(Calendar.SECOND, 59);
calendar.set(Calendar.MILLISECOND, 0);
return calendar.getTime();
}
/**
* 获取前一天的0:00
* @param time
* @return
*/
public static Date getUpStartDay(Date time){
Calendar calendar =Calendar.getInstance();
calendar.setTime(time);
calendar.add(Calendar.DAY_OF_MONTH, -1);
calendar.set(Calendar.HOUR_OF_DAY, 0);
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.SECOND, 0);
calendar.set(Calendar.MILLISECOND, 0);
return calendar.getTime();
}
/**
* 获取当前时间的所在月的最大天数
* @param time
* @return
*/
public static int getDaysByCurr(Date time){
Calendar calendar=Calendar.getInstance();
calendar.setTime(time);
int days=calendar.getActualMaximum(Calendar.DAY_OF_MONTH);
return days;
}
/**
* 判断当天是否为本月第一天
* @param time
* @return
*/
public static boolean isFirstDayOfMonth(Date time){
Calendar calendar=Calendar.getInstance();
calendar.setTime(time);
int days=calendar.get(Calendar.DAY_OF_MONTH);
if(days==1){
return true;
}else {
return false;
}
}