Java 时间处理 今天剩余时间 本周 上周

时间处理, 随用随记.

(一) 获得当前系统时间到第二天凌晨的毫秒数

import java.util.Calendar;

Calendar cal = Calendar.getInstance();
cal.add(Calendar.DAY_OF_YEAR, 1);
cal.set(Calendar.HOUR_OF_DAY, 0);
cal.set(Calendar.SECOND, 0);
cal.set(Calendar.MINUTE, 0);
cal.set(Calendar.MILLISECOND, 0);
long time = cal.getTimeInMillis() - System.currentTimeMillis();

(二) 获得本周星期一日期

import java.util.Calendar;
import java.util.Date;

public Date getThisWeekMonday(Date date) {
    Calendar cal = Calendar.getInstance();
    cal.setTime(date);
    // 获得当前日期是一个星期的第几天
    int dayWeek = cal.get(Calendar.DAY_OF_WEEK);
    if (1 == dayWeek) {
         cal.add(Calendar.DAY_OF_MONTH, -1);
    }
    cal.setFirstDayOfWeek(Calendar.MONDAY);
    // 获得当前日期是一个星期的第几天
    int day = cal.get(Calendar.DAY_OF_WEEK);
    // 根据日历的规则,给当前日期减去星期几与一个星期第一天的差值
    cal.add(Calendar.DATE, cal.getFirstDayOfWeek() - day);
    return cal.getTime();
 }

(三) 获取date的前几天日期

import java.util.Calendar;
import java.util.Date;

public Date getNewDateBeforeDate(Date date, Integer num) {
   Calendar calendar = Calendar.getInstance();
   calendar.setTime(date);
   calendar.add(Calendar.DAY_OF_MONTH, num);
   date = calendar.getTime();
   return date;
}

(四) 获得上周一和上周日日期

String lastMonday = getNewDateBeforeDate(getThisWeekMonday(new Date()), -7);

String lastSunday = getNewDateBeforeDate(getThisWeekMonday(new Date()), -1);

你可能感兴趣的:(软件开发)