要实现每天的订单号从 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 开始

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

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