java工具DateUtil

本文介绍了一个简单的Java方法,用于获取当前周的周一00:00:00和周天23:59:59的时间戳。方法通过Calendar类实现了这一功能,并考虑了跨年的场景。
//一年内的周一
public final class DateUtil{

       /**
       *获得当前周的周一 的00:00:00
       */
       public static Date getMonDayOfCurrentWeak() {
        Calendar calendar = Calendar.getInstance();
        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);
        return calendar.getTime();
      }
   
    /**
    *获得当前周的周天的23:59:59
    */
    public static Date getSunDayOfCurrentWeak(){
        Calendar calendar = Calendar.getInstance();
        calendar.add(Calendar.WEEK_OF_YEAR, 1);
        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);
        return calendar.getTime();
    }
 

改进版:跨年也没问题(依赖commons-lang.jar)

public final class DateUtil{
public static Date getMonDayOfCurrentWeak() {
		Calendar calendar = Calendar.getInstance();
		int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK);
		Date date=null;
		if(dayOfWeek>Calendar.MONDAY){
			date = DateUtils.addDays(calendar.getTime(), Calendar.MONDAY-dayOfWeek);
			calendar.setTime(date);
		}else if (dayOfWeek==Calendar.SUNDAY) {
			date = DateUtils.addDays(calendar.getTime(), -6);
			calendar.setTime(date);
		}
		calendar.set(Calendar.HOUR_OF_DAY, 0);
		calendar.set(Calendar.MINUTE, 0);
		calendar.set(Calendar.SECOND, 0);
		return calendar.getTime();
	}
	
	public static Date getSunDayOfCurrentWeak(){
		Calendar calendar = Calendar.getInstance();
		int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK);
		Date date=null;
		if(dayOfWeek>Calendar.SUNDAY){
			date = DateUtils.addDays(calendar.getTime(), 8-dayOfWeek);
			calendar.setTime(date);
		}
		calendar.set(Calendar.HOUR_OF_DAY, 23);
		calendar.set(Calendar.MINUTE, 59);
		calendar.set(Calendar.SECOND, 59);
		return calendar.getTime();
	}
}
 

 

xxx

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值