import java.util.Calendar;
import java.util.Date;
/**
* 日期处理工具
*
*
*/
public class DateUtil {
/**
* 获取当前日期是当前年的第几周
* @return
*/
public static int getWeeksOfYear(){
Calendar calendar = Calendar.getInstance();
return calendar.get(Calendar.WEEK_OF_YEAR);
}
/**
* 获取某年某个星期第一天零点的时间信息
* @param year 年
* @param week 星期数
* @return
*/
public static Date getFirstTimeOfWeek(int year,int week){
Calendar calendar = Calendar.getInstance();
calendar.clear();
calendar.set(Calendar.YEAR, year);
calendar.set(Calendar.WEEK_OF_YEAR,week);
int start = calendar.getFirstDayOfWeek();
calendar.set(Calendar.DAY_OF_WEEK, start);
return new Date(getZeroTime(calendar));
}
/**
* 获取某年某个星期最后一天23:59:59的时间信息
* @param year
* @param week
* @return
*/
public static Date getLastTimeOfWeek(int year,int week){
Date date = getFirstTimeOfWeek(year, week+1);
long end = date.getTime() - 1000;
return new Date(end);
}
/**
* 获取指定日期零点的时间戳
* @param calendar
* @return
*/
public static long getZeroTime(Calendar calendar){
calendar.set(Calendar.HOUR_OF_DAY, 0);
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.SECOND, 0);
calendar.set(Calendar.MILLISECOND, 0);
return calendar.getTimeInMillis();
}
/**
* 获取指定日期零点的时间戳
* @param date
* @return
*/
public static long getZeroTime(Date date){
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.getTimeInMillis();
}
/**
* 获取当前零点的时间戳
* @return
*/
public static long getZeroTime(){
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.HOUR_OF_DAY, 0);
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.SECOND, 0);
calendar.set(Calendar.MILLISECOND, 0);
return calendar.getTimeInMillis();
}
/**
* 获取某年某个月的天数
*
* @param year
* 年份
* @param month
* 月份
* @return 天数
*/
public static int caculateDaysByMonth(int year, int month) {
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.YEAR, year);
calendar.set(Calendar.MONTH, month - 1);
return calendar.getActualMaximum(Calendar.DAY_OF_MONTH);
}
/**
* 判断某一年是否是闰年
*
* @param year
* @return true闰年 false平年
*/
public static boolean isLeap(int year) {
int days = getDaysByYear(year);
if (days == 366) {
return true;
}
return false;
}
/**
* 获取指定年份的天数
*
* @param year
* 年
* @return 一年中的天数
*/
public static int getDaysByYear(int year) {
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.YEAR, year);
return calendar.getActualMaximum(Calendar.DAY_OF_YEAR);
}
}
Java日期处理工具类
最新推荐文章于 2024-08-14 23:12:09 发布