想弄一个自动分配编号,求高手
这个编号必须是唯一的,可以根据日期,比如今天是2013年6月29日
那分配一个编号是2013062901
分配的第二个就是2013062902
依次这样 编号 分配
[解决办法]
private static int temp = 0;
public static String getNum(){
SimpleDateFormat df = new SimpleDateFormat("yyyyMMdd");
String date = df.format(new Date());//获取当前时间yyyymmdd格式
String str ;
if(temp<10){
str = "0"+temp;
}else{
str = ""+temp;
}
String num = date + str;
temp ++;
return num;
}
[解决办法]
自增功能使用atom类。
public class Test {
private static AtomicInteger num = new AtomicInteger(1);
public static void main(String[] args) throws Exception {
Integer year = Calendar.getInstance().get(Calendar.YEAR);
//月份从0开始
Integer month = Calendar.getInstance().get(Calendar.MONTH) + 1;
String monthStr = (month < 10)?"0"+month.toString():month.toString();
Integer day = Calendar.getInstance().get(Calendar.DAY_OF_MONTH);
String dayStr = (day < 10)?"0"+day.toString():day.toString();
String time = year.toString() + monthStr + dayStr;
//输出100个
while(num.intValue() <= 100){
Integer i = num.getAndIncrement();
System.out.println(time + i.toString());
}
}
}