获取 合同编号 Z2018040001 Z变 201804 时间 年月 0001 当天合同编号

某单位网签合同编号为Z2018040001格式,其中Z固定,前6位为年月,后4位程序计算编号。签合同时,程序自动生成新的顺序编号,请给出当天的下一个合同编号。假定上一个合同编号通过公共方法getNum()已经取得。注意,新号码需要自行考虑到合理性,新的月份号码后四位需要重置。

package com.gxa.ehome.util;

import java.util.Date;

public class A {

public static String getNum3() {

    //获取 上一个合同 编号
    String num = getNum();

    //初始化一个StringBuilder
    StringBuilder i2 = new StringBuilder("0");


    //获取上一个合同的时间
    for (int i = 1; i <= 6; i++) {
        char c1 = num.charAt(i);
        i2.append(c1);

    }
    //去除前面第一个初始化的0
    i2.deleteCharAt(0);

    System.out.println("i2=" + i2);

    //获取当前时间年月
    String num2 = getNum2();

    System.out.println("num2=" + num2);

    //转换类型
    String string = i2.toString();

    //判断时间是否相同  相同
    if (string.equals(num2)) {

        //获取最后四位
        String num4 = getNum4();

        return "Z" + i2 + num4;

      //不相同
    } else {
        
        return "Z" + num2 +"0001";
    }





}

//获取当前年月(时间)
public static String getNum2() {

    Date date = new Date();
    java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat("yyyyMM");
    String i2 = sdf.format(date);
    return i2;
}

//获取 上一个合同 编号
public static String getNum() {
    return "Z2020100029";
}

//获取最后四位
public static String getNum4() {

    //初始化一个StringBuilder
    StringBuilder i3 = new StringBuilder("0");

    //获取 上一个合同 编号
    String num = getNum();

    //获取 上一个合同 最后四位
    for (int i = 7; i <= 10; i++) {
        char c1 = num.charAt(i);

        i3.append(c1);
    }
    //去除 初始化的0
    i3.deleteCharAt(0);

    //强制转换  加一    例: 0001 变成 1
    int i = Integer.parseInt(i3.toString());
    i++;

    //强制转换
    String i4 = String.valueOf(i);

    int length = i4.length();

    //把0补齐   例 : 30  变成 0030
    for (int ii = 1; ii <= (4 - length); ii++) {

        i4 = "0" + i4;
    }

    //返回 最后4位
    return  i4;

}

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值