java中自动生成有规律的编号

例如“2008050001,2008060002”前六位是系统时间+“0001”但注意我的要求是当到了下个月份时,后4位是顺序下来的比如5月份最后一笔业务是“200805... 例如“2008050001,2008060002”前六位是系统时间+“0001”
但注意 我的要求是 当到了下个月份时,后4位是顺序下来的
比如 5月份最后一笔业务是“2008050012”那么6月份的第一
笔业务就是“2008060013”
谢谢帮忙!
展开
 我来答
xiaolinliu56
2008-06-12 · TA获得超过250个赞
知道小有建树答主
回答量:296
采纳率:0%
帮助的人:249万
展开全部
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;
}
}
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
naturepal
2008-06-12 · TA获得超过3408个赞
知道小有建树答主
回答量:1014
采纳率:0%
帮助的人:826万
展开全部
把系统时间转换成数字然后*10000,再加上一次递增1的后四位数
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
fengkuang491
2008-06-12 · TA获得超过143个赞
知道答主
回答量:279
采纳率:0%
帮助的人:180万
展开全部
oracle 10g中:

SELECT (TO_CHAR(SYSDATE,'YYYYMM') || LPAD(NVL(MAX(SUBSTR(id, 7, 4)) + 1, 1), 4, '0')) AS newId

FROM test

test表中有个字符型的id字段。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友8e0e55f
2008-06-12 · TA获得超过319个赞
知道答主
回答量:69
采纳率:0%
帮助的人:0
展开全部
将最后4位数存在一个表中。前面几位用当前时间。做个函数拼出来不就行了。
每生成一个号后再去表中修改那个4位数。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友68ebec1
2008-06-12 · TA获得超过757个赞
知道小有建树答主
回答量:832
采纳率:0%
帮助的人:543万
展开全部
你可真会想
这样的编号既然你能想出来,为什么不自己有程序写出来
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式