新聞中心
java自動生成‘日期0001’順序號 如‘201404170001’,生成下一個時不重復(fù)
#DROP FUNCTION IF EXISTS func_getVoucherId ;
創(chuàng)新互聯(lián)堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都網(wǎng)站制作、成都做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時代的任丘網(wǎng)站設(shè)計(jì)、移動媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!
CREATE FUNCTION func_getVoucherId /*生成憑證編號*/
(
f_str varchar(255)
)
returns varchar(255) charset utf8
begin
/*獲取最大憑證號*/
declare v_maxVoucherId varchar(255) default '';
/*獲取最大憑證號*/
declare v_flowMaxVoucherId varchar(255) default '';
/*新的憑證號*/
declare v_newVoucherId varchar(255) default '';
/*判斷是新增存盤還是入賬存盤*/
if ifnull(rtrim(f_str),'') = '' then
select max(voucher_code) into v_maxVoucherId from finance_voucher ;
if ifnull(rtrim(v_maxVoucherId),'')='' then
set v_newVoucherId = rpad(replace(cast(curdate() as char(255)),'-',''),11,0); /*生成憑證編號*/
else
set v_newVoucherId = convert((convert(v_maxVoucherId,signed)+1),char(255));
end if ;
elseif ifnull(rtrim(f_str),'') = 'r' then
select max(voucherInfo) into v_flowMaxVoucherId from province_voucher_account_flow ;
if ifnull(rtrim(v_flowMaxVoucherId),'')='' then
set v_newVoucherId = rpad(replace(cast(curdate() as char(255)),'-',''),12,0); /*生成憑證編號*/
else
set v_newVoucherId = convert((convert(v_flowMaxVoucherId,signed)+1),char(255));
end if ;
end if ;
return v_newVoucherId ;
end ;
我目前做的項(xiàng)目也涉及到了這個生成規(guī)則,我用MYSQL數(shù)據(jù)庫函數(shù)寫了一個,你看下吧,希望能幫到你
想用java自動生成貨品編號的代碼,生成規(guī)則如下:
那就傳分類的參數(shù),去生成唄,,,,,從數(shù)據(jù)中確定下一個編號
~
~
~
java 按天生成序號
提供2個思路:
1:存取最后一次序列號的日期,每次生成序號的時候取該日期和當(dāng)前日期對比不同則重新計(jì)數(shù),并將本次日期覆蓋為最后一次序列號的日期;
2:如果用數(shù)據(jù)庫存儲的話可以考慮每次去數(shù)據(jù)庫查詢是否有l(wèi)ike當(dāng)前日期的序號,沒有則重新計(jì)數(shù);
java中自動生成有規(guī)律的編號
public class Main {
private static long n = 1;
public static void main(String[] args) {
System.out.println(test(n));
System.out.println(test(n));
}
public static long test(long l) {
String str = new SimpleDateFormat("yyyyMM")
.format(new java.util.Date());
long m = Long.parseLong((str)) * 10000;
long ret = m + l;
n = l + 1;
return ret;
}
}
java 編程中顯示日期和時間的代碼
可以直接通過jdk基本方法,獲取到當(dāng)前的時間
Date date= new Date();//創(chuàng)建一個時間對象,獲取到當(dāng)前的時間
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//設(shè)置時間顯示格式
String str = sdf.format(date);//將當(dāng)前時間格式化為需要的類型
System.out.println(str);//輸出結(jié)果
結(jié)果為:2015-11-06 13:53:54(實(shí)時)。
如何生成一個年年+月月+6位序號(java)
public class test1 {
public synchronized static String getNum(){
StringBuffer sb=new StringBuffer();
Calendar cal = new GregorianCalendar();
int year = cal.get(Calendar.YEAR);
int month = cal.get(Calendar.MONTH)+1;
sb.append(year);
if(month10){
sb.append("0"+month);
}else{
sb.append(month);
}
sb.append(getLastSixNum());
return sb.toString();
}
public static String getLastSixNum(){
int count = 0;
char str[] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9' };
StringBuffer pwd = new StringBuffer("");
Random r = new Random();
while (count 6) {
int i = Math.abs(r.nextInt(10));
if (i = 0 i str.length) {
pwd.append(str[i]);
count++;
}
}
return pwd.toString();
}
public static void main(String []args){
System.out.println(test1.getLastSixNum());
System.out.println(test1.getNum());
}
}
在getLastSixNum()方法體中還可以自己設(shè)置規(guī)則。。
我是采用隨即產(chǎn)生的了。。
如果要是產(chǎn)生不重復(fù)的號碼 最好再getNum()方法上加鎖
我有修改了我的方案: 采用日期和后續(xù)六位鍵值對的形式
這樣做的好處是 日期改變時候,后續(xù)六位從1開始記位
import java.util.Calendar;
import java.util.GregorianCalendar;
import java.util.HashMap;
import java.util.Map;
public class test1 {
private static MapString,String map=new HashMapString, String();
private static String STATNUM="000001";
public String getYearAndMonth(){
StringBuffer sb=new StringBuffer();
Calendar cal = new GregorianCalendar();
int year = cal.get(Calendar.YEAR);
int month = cal.get(Calendar.MONTH)+1;
sb.append(year);
if(month10){
sb.append("0"+month);
}else{
sb.append(month);
}
return sb.toString();
}
public String getLastSixNum(String s){
String rs=s;
int i=Integer.parseInt(rs);
i+=1;
rs=""+i;
for (int j = rs.length(); j 6; j++) {
rs="0"+rs;
}
return rs;
}
public synchronized String getNum(){
String yearAMon=getYearAndMonth();
String last6Num=map.get(yearAMon);
if(last6Num==null){
map.put(yearAMon,STATNUM);
}else{
map.put(yearAMon,getLastSixNum(last6Num));
}
return yearAMon+map.get(yearAMon);
}
public static void main(String []args){
test1 t= new test1();
System.out.println(t.getNum());
System.out.println(t.getNum());
System.out.println(t.getNum());
}
}
測試結(jié)果:
201109000001
201109000002
201109000003
網(wǎng)站欄目:java時間做編號的代碼,java時間做編號的代碼有哪些
文章位置:http://www.dlmjj.cn/article/hohgge.html