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));
}
}
相关文章
- java局域网发送文件_Java如何实现局域网文件传输代码案例分享
- java helloworld源代码_Java Hello World源代码剖析
- java 论坛_5 个最好用的 Java 开源论坛系统
- 编写java判断闰年_Java 判断闰年代码实例
- java冒泡排序代码_Java冒泡排序
- JAVA对象转map_java处理字符串类型的map
- Java入门代码_java编程自学网
- JAVA外文参考文献_java参考文献近五年
- java解释器虚拟机-Java代码如何运行在Java虚拟机中
- 【Android NDK 开发】JNI 方法解析 ( 字符串数组参数传递 | 字符串遍历 | 类型强转 | Java 字符串与 C 字符串转换 | 字符串释放 )
- 使用POI向excel中写入图片的java代码详解编程语言
- 实现使用Java代码实现MySQL数据库连接(java连接mysql数据库代码)
- 程序Linux下构建Java应用:从入门到精通(linux下开发java)
- Linux下Java开发入门指南(linux下java开发)
- Java 虚拟机总结 – JVM 内存区域详解编程语言
- Java 连接 Redis:实现数据快速传输(java连redis)
- 策略Java中使用Redis限定过期策略(redisjava过期)
- key处理利用Java处理Redis过期key(redisjava过期)
- 时间如何在Java中利用Redis设置过期时间(redisjava过期)
- 国内首本系统讲解Java异步编程的书籍-java异步编程实战
- 基于Linux操作系统上实现 Java 编程(linux r java)
- Linux平台上C语言接口调用Java语言实现(linux c调java)
- 使用Java去连接MySQL数据库(java jdbc mysql)
- 实现基于Redis的分布式锁Java实现(redis锁java代码)
- Redis无法与Java建立连接(redis连不上java)
- 缓存使用Redis让Java代码更加迅速缓存设置(redis设置java)