zl程序教程

您现在的位置是:首页 >  后端

当前栏目

java得到某年某周的第一天实现思路及代码

JAVA思路代码 实现 得到 第一天 某年
2023-06-13 09:14:44 时间
直接上代码
复制代码代码如下:

importjava.util.Calendar;
importjava.util.Date;
importorg.apache.commons.logging.Log;
importorg.apache.commons.logging.LogFactory;
/**
*日期工具类
*@authorWXQ
*
*/
publicclassDateUtils{

privatestaticfinalLoglog=LogFactory.getLog(DateUtils.class);
/**
*取得当前日期是多少周
*
*@paramdate
*@return
*/
publicstaticintgetWeekOfYear(Datedate){
Calendarc=Calendar.getInstance();
c.setFirstDayOfWeek(Calendar.MONDAY);
/**设置一年中第一个星期所需的最少天数,例如,如果定义第一个星期包含一年第一个月的第一天,则使用值1调用此方法。
*如果最少天数必须是一整个星期,则使用值7调用此方法。**/
c.setMinimalDaysInFirstWeek(1);
c.setTime(date);
returnc.get(Calendar.WEEK_OF_YEAR);
}
/**
*得到某一年周的总数
*
*@paramyear
*@return
*/
publicstaticintgetMaxWeekNumOfYear(intyear){
Calendarc=Calendar.getInstance();
c.set(year,Calendar.DECEMBER,31,23,59,59);
returngetWeekOfYear(c.getTime());
}
/**
*得到某年某周的第一天
*
*@paramyear
*@paramweek
*@return
*/
publicstaticDategetFirstDayOfWeek(intyear,intweek){
Calendarc=Calendar.getInstance();
c.set(Calendar.YEAR,year);
c.set(Calendar.WEEK_OF_YEAR,week);
c.set(Calendar.DAY_OF_WEEK,Calendar.MONDAY);//设置周一
c.setFirstDayOfWeek(Calendar.MONDAY);
returnc.getTime();
}

/**
*得到某年某周的最后一天
*
*@paramyear
*@paramweek
*@return
*/
publicstaticDategetLastDayOfWeek(intyear,intweek){
Calendarc=Calendar.getInstance();
c.set(Calendar.YEAR,year);
c.set(Calendar.WEEK_OF_YEAR,week);
c.setFirstDayOfWeek(Calendar.MONDAY);
c.set(Calendar.DAY_OF_WEEK,c.getFirstDayOfWeek()+6);//Sunday

returnc.getTime();
}

/**
*得到某年某月的第一天
*
*@paramyear
*@parammonth
*@return
*/
publicstaticDategetFirstDayOfMonth(intyear,intmonth){
Calendarc=Calendar.getInstance();
c.set(Calendar.YEAR,year);
c.set(Calendar.MONTH,month-1);
c.set(Calendar.DAY_OF_MONTH,c.getActualMinimum(Calendar.DAY_OF_MONTH));
returnc.getTime();
}

/**
*得到某年某月的最后一天
*
*@paramyear
*@parammonth
*@return
*/
publicstaticDategetLastDayOfMonth(intyear,intmonth){
Calendarc=Calendar.getInstance();
c.set(Calendar.YEAR,year);
c.set(Calendar.MONTH,month-1);
c.set(Calendar.DAY_OF_MONTH,c.getActualMaximum(Calendar.DAY_OF_MONTH));
returnc.getTime();
}
/**
*得到某年某季度第一天
*
*@paramyear
*@paramquarter
*@return
*/
publicstaticDategetFirstDayOfQuarter(intyear,intquarter){
intmonth=0;
if(quarter>4){
returnnull;
}else{
month=(quarter-1)*3+1;
}
returngetFirstDayOfMonth(year,month);
}
/**
*得到某年某季度最后一天
*
*@paramyear
*@paramquarter
*@return
*/
publicstaticDategetLastDayOfQuarter(intyear,intquarter){
intmonth=0;
if(quarter>4){
returnnull;
}else{
month=quarter*3;
}
returngetLastDayOfMonth(year,month);
}
/**
*得到某年第一天
*
*@paramyear
*@return
*/
publicstaticDategetFirstDayOfYear(intyear){
returngetFirstDayOfQuarter(year,1);
}

/**
*得到某年最后一天
*
*@paramyear
*@return
*/
publicstaticDategetLastDayOfYear(intyear){
returngetLastDayOfQuarter(year,4);
}

publicstaticvoidmain(String[]args){
log.info(getFirstDayOfWeek(2013,1));
log.info(getLastDayOfWeek(2013,1));

log.info(getFirstDayOfMonth(2013,2));
log.info(getLastDayOfMonth(2013,2));

log.info(getFirstDayOfQuarter(2013,2));
log.info(getLastDayOfQuarter(2013,2));

log.info(getFirstDayOfYear(2013));
log.info(getLastDayOfYear(2013));

}
}