NumberUtil.java 2.7 KB
Newer Older
苗卫卫 committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114
package com.boco.nbd.wios.manage.util;

import cn.hutool.core.date.DatePattern;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.regex.Pattern;

/**
 * 工具类
 *
 * @author xfy
 * @date 2022/2/11
 */
public class NumberUtil {

    private final static int RANDOM_SIZE = 2;
    private static Pattern pattern = Pattern.compile("^[1]\\d{10}$");

    /**
     * 获取随机数
     *
     * @param start
     * @param end
     * @return
     */
    public static int getRandomNum(int start, int end) {
        int gap = end - start;
        if (gap <= 0) {
            return 0;
        }
        double random = Math.random();
        int floor = (int) Math.floor(random * 1000);
        int m = floor % gap;

        return m + start;
    }

    /**
     * 产生订单编号随机数(20位)
     *
     * @return
     */
    public static String getRandomOrderId() {
        Date date = new Date();
        SimpleDateFormat sdf = new SimpleDateFormat(DatePattern.PURE_DATETIME_MS_PATTERN);
        String format = sdf.format(date);
        for (int i = 0; i <= RANDOM_SIZE; i++) {
            String str = String.valueOf(((Double.valueOf(Math.random() * 10)).intValue()));
            format += str;
        }
        return format;
    }

    /**
     * 获取工单id
     *
     * @param randomNums
     * @return
     */
    public static String getRandomOrderId(int randomNums) {
        Date date = new Date();
        SimpleDateFormat sdf = new SimpleDateFormat(DatePattern.PURE_DATE_PATTERN);
        String format = sdf.format(date);
        for (int i = 0; i <= randomNums; i++) {
            String str = String.valueOf(((Double.valueOf(Math.random() * 10)).intValue()));
            format += str;
        }
        return format;
    }

    public static int getMinuteBetweenDate(Date startTime, Date endTime) {
        long ms1 = startTime.getTime();
        long ms2 = endTime.getTime();
        return (int) ((ms2 - ms1) / (1000 * 60));
    }


    /**
     * 保留两位小数,四舍五入
     *
     * @param value
     * @return
     */
    public static double roundDouble(double value) {
        return Math.round(value * 100) / 100.0;
    }

    /**
     * 获得随机数字组成的字符串
     *
     * @param num
     * @return
     */
    public static String getRandomNumbers(int num) {
        String result = "";
        for (int i = 0; i < num; i++) {
            int random = Double.valueOf(Math.random() * 10).intValue();
            result += random;
        }
        return result;
    }

    /**
     * 正则:手机号(简单), 1字头+10位数字即可.
     *
     * @param in
     * @return
     */
    public static boolean validateMobilePhone(String in) {
        return pattern.matcher(in).matches();
    }

}