java关于时间业务层实现方法

System.out.println((new Date().getTime()-new SimpleDateFormat(“yyyy-MM-dd hh:mm:ss”).parse(“2019-2-23 00:00:00”).getTime())/24/60/60/1000);

EQ 就是 EQUAL等于
NE就是 NOT EQUAL不等于
GT 就是 GREATER THAN大于 
LT 就是 LESS THAN小于
GE 就是 GREATER THAN OR EQUAL 大于等于
LE 就是 LESS THAN OR EQUAL 小于等于

BigDecimal计算
加:add()
减:subtract()
乘:multipy()
除:divide()
绝对值:abs()
BigDecimal aveGprice = BigDecimal.ZERO;
aveGprice = 字段.divide(new BigDecimal(字段),2, RoundingMode.HALF_UP);

// 查询时间段销售额数据,按天分组
select DATE_FORMAT(cdate,’%Y-%m-%d’) cdate,IFNULL(sum(trade_amount), 0) tradeAmount
from gs_trade
where flag = 0
and DATE_SUB(CURDATE(),INTERVAL 1 MONTH) <= DATE(cdate)
GROUP BY DATE_FORMAT(cdate,’%Y-%m-%d’)
ORDER BY DATE_FORMAT(cdate,’%Y-%m-%d’) DESC limit 0,10

============================================================

// 获取当天的开始时间
public static java.util.Date getDayBegin() {
Calendar cal = new GregorianCalendar();
cal.set(Calendar.HOUR_OF_DAY, 0);
cal.set(Calendar.MINUTE, 0);
cal.set(Calendar.SECOND, 0);
cal.set(Calendar.MILLISECOND, 0);
return cal.getTime();
}

// 获取当天的结束时间
public static java.util.Date getDayEnd() {
Calendar cal = new GregorianCalendar();
cal.set(Calendar.HOUR_OF_DAY, 23);
cal.set(Calendar.MINUTE, 59);
cal.set(Calendar.SECOND, 59);
return cal.getTime();
}

// 昨日开始时间
Calendar cal = new GregorianCalendar();
cal.setTime(getDayBegin());
cal.add(Calendar.DAY_OF_MONTH, -1);
System.out.println(LocalDateTime.ofInstant(cal.getTime().toInstant(), ZoneOffset.systemDefault()));
//昨日结束时间
Calendar cal2 = new GregorianCalendar();
cal2.setTime(getDayEnd());
cal2.add(Calendar.DAY_OF_MONTH, -1);
System.out.println(LocalDateTime.ofInstant(cal2.getTime().toInstant(), ZoneOffset.systemDefault()));

public static void main(String[] args) {
			//昨日起始时间
            Calendar cal = new GregorianCalendar();
            cal.setTime(getDayBegin());
            cal.add(Calendar.DAY_OF_MONTH, -1);
            System.out.println(LocalDateTime.ofInstant(cal.getTime().toInstant(), ZoneOffset.systemDefault()));
            
			//昨日结束时间
            Calendar cal2 = new GregorianCalendar();
            cal2.setTime(getDayEnd());
            cal2.add(Calendar.DAY_OF_MONTH, -1);
            System.out.println(LocalDateTime.ofInstant(cal2.getTime().toInstant(), ZoneOffset.systemDefault()));
            System.out.println(LocalDateTime.now().minus(Period.ofDays(1)));
        }

Calendar calYesterDayStat = new GregorianCalendar();
calYesterDayStat.setTime(getDayBegin());
calYesterDayStat.add(Calendar.DAY_OF_MONTH, -1);
Calendar calYesterDayEnd = new GregorianCalendar();
calYesterDayEnd.setTime(getDayEnd());
calYesterDayEnd.add(Calendar.DAY_OF_MONTH, -1);

            //时间段查询方式
            
                    wrapper.ge("cdate", LocalDateTime.ofInstant(calYesterDayStat.getTime().toInstant(), ZoneOffset.systemDefault()))
                            .le("cdate",LocalDateTime.ofInstant(calYesterDayEnd.getTime().toInstant(), ZoneOffset.systemDefault()));
                            //或
                   wrapper.between("cdate",qto.xx起始时间(),qto.结束时间());

================================================================
// mysql日周月

#天
DATE(cdate) =DATE(CURDATE()-1)
#周
DATE_SUB(CURDATE(),INTERVAL 7 DAY) <=DATE(cdate)
#月
DATE_SUB(CURDATE(),INTERVAL 1 MONTH) <= DATE(cdate)
#查询过去n天内所有数据
DATEDIFF(cdate,NOW())<=0 AND DATEDIFF(cdate,NOW())>-n

// LocalDateTime七天前
LocalDateTime.now().minus(Period.ofDays(7)
// 现在
LocalDateTime.now()

SimpleDateFormat sdf = new SimpleDateFormat(“yyyy-MM-dd”);

// 今天
System.out.println(“今天:”+ sdf.format(new Date()));

// 昨天
Date yestday=new Date();
String predate = sdf.format(new Date(yestday.getTime() - (long)24 * 60 * 60 * 1000));
System.out.println(“昨天:”+ predate);

// 一周
String firstday,lastday;
Calendar cal = Calendar.getInstance();
cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY); // 获取本周一的日期
firstday = sdf.format(cal.getTime());
cal.add(Calendar.DATE, 6);
lastday = sdf.format(cal.getTime());
System.out.println(“本周周一和周末:”+ firstday + " and " + lastday);

//一月
Calendar cal2 = Calendar.getInstance();
cal2.set(Calendar.DAY_OF_MONTH,cal.getActualMinimum(Calendar.DAY_OF_MONTH));
firstday = sdf.format(cal2.getTime());
cal2.set(Calendar.DAY_OF_MONTH,cal.getActualMaximum(Calendar.DAY_OF_MONTH));
lastday = sdf.format(cal2.getTime());
System.out.println(“本月第一天和最后一天:” + firstday + " and " + lastday);

LocalDateTime转换date()类型
LocalDateTime.ofInstant(new Date().toInstant(), ZoneId.systemDefault())

//姓名:长度不能超过10个汉字或20个英文,汉字和英文只能选其中一种。
if(dto.getName() !=null && !"".equals(dto.getName())){
if(getNameReqex(dto.getName()) == false){
return responseData.err(StuMsgConst.ADD_ERR_NAME);
}
student.setName(dto.getName());
}else {
return responseData.err(StuMsgConst.ADD_ERR_NAME_ISNULL);
}

//以“S_”开头,加上长度为5的随机数
public static String getRandomNumber() {
int randomNumber= (int)((Math.random()*9+1)*10000);
DecimalFormat decimalFormat = new DecimalFormat(“S_” + randomNumber);
return decimalFormat.format(serialID);
}

// 姓名:长度不能超过10个汉字或20个英文,汉字和英文只能选其中一种。
public static Boolean getNameReqex(String name) {
return name.matches("^([\u4e00-\u9fa5]{0,10}|[a-zA-Z\.\s]{0,20})$");
}

/**

  • 判断一个时间是否在一个时间段内
  • @param nowTime 当前时间
  • @param beginTime 开始时间
  • @param endTime 结束时间
    */
    private static boolean belongCalendar(Date nowTime, Date beginTime, Date endTime) {
    Calendar date = Calendar.getInstance();
    date.setTime(nowTime);
    Calendar begin = Calendar.getInstance();
    begin.setTime(beginTime);
    Calendar end = Calendar.getInstance();
    end.setTime(endTime);
    return date.after(begin) && date.before(end);
    }

//根据生日判断年龄
public static int getAgeByBirthday(Date birthday) {
Calendar cal = Calendar.getInstance();
if (cal.before(birthday)) {
throw new IllegalArgumentException(
“The birthDay is before Now.It’s unbelievable!”);
}
int yearNow = cal.get(Calendar.YEAR);
int monthNow = cal.get(Calendar.MONTH) + 1;
int dayOfMonthNow = cal.get(Calendar.DAY_OF_MONTH);
cal.setTime(birthday);
int yearBirth = cal.get(Calendar.YEAR);
int monthBirth = cal.get(Calendar.MONTH) + 1;
int dayOfMonthBirth = cal.get(Calendar.DAY_OF_MONTH);
int age = yearNow - yearBirth;
if (monthNow <= monthBirth) {
if (monthNow == monthBirth) {
// monthNow==monthBirth
if (dayOfMonthNow < dayOfMonthBirth) {
age–;
}
}else {
age–;
}
}
return age;
}

//LocalDateTime 5分钟之前跟现在时间
public static void main(String[] args) {
Date lastMonthDate = DateUtils.addMonth(new Date(), -1);
LocalDateTime startDate = DateUtils.firstDayOfMonth(lastMonthDate);
LocalDateTime endDate = DateUtils.firstDayOfMonth(new Date());
System.out.println(“star:”+startDate+",end:"+endDate);
//5分钟之前的时间
DateTimeFormatter df = DateTimeFormatter.ofPattern(“yyyy-MM-dd HH:mm:ss”);
Calendar beforeTime = Calendar.getInstance();
beforeTime.add(Calendar.MINUTE, -5);
String localTime = df.format(LocalDateTime.now());
LocalDateTime before5 = LocalDateTime.parse(new SimpleDateFormat(“yyyy-MM-dd HH:mm:ss”).format(beforeTime.getTime()),df);
System.out.println(“before:”+before5+",now:"+LocalDateTime.now());

}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值