要实现每天的订单号从01开始,可以使用AtomicInteger结合日期来生成唯一的订单号。

首先,创建一个AtomicInteger对象用于保存订单号,初始值设为0。然后,在生成订单号时,将当前日期与前一天的日期进行比较,如果是新的一天,将订单号重置为1,否则,将订单号加1。最后,将订单号转换为两位数的字符串形式,不足两位的数字前面补0。

以下是一个示例代码:

import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.concurrent.atomic.AtomicInteger;

public class OrderNumberGenerator {
    private static AtomicInteger orderNumber = new AtomicInteger(0);
    private static LocalDate currentDate = LocalDate.now();

    public static String generateOrderNumber() {
        LocalDate today = LocalDate.now();
        if (!today.isEqual(currentDate)) {
            orderNumber.set(1);
            currentDate = today;
        } else {
            orderNumber.incrementAndGet();
        }
        return formatOrderNumber(orderNumber.get());
    }

    private static String formatOrderNumber(int number) {
        return String.format("%02d", number);
    }

    public static void main(String[] args) {
        for (int i = 0; i < 10; i++) {
            String orderNumber = OrderNumberGenerator.generateOrderNumber();
            System.out.println(orderNumber);
        }
    }
}

每次调用generateOrderNumber()方法时,会根据当前日期判断是否是新的一天,如果是,则将订单号重置为1;如果不是,则将订单号加1。最后,调用formatOrderNumber()方法将订单号格式化为两位数的字符串形式。

运行示例代码,输出结果如下:

01
02
03
04
05
06
07
08
09
10

第二天再次运行代码,输出结果如下:

01
02
03
04
05
06
07
08
09
10
``
java使用AtomicInteger生成每天的订单号次日订单号还是从01开始

原文地址: http://www.cveoy.top/t/topic/iXEk 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录