如何按月创建连续数字

时间:2014-04-18 17:10:45

标签: java

我正在创建一个java webapp,我必须创建一个应该每个月开始的连续数字。我的想法是这样的:

01-0414 / 02-0414 / 03-0414 / 04-0414

前两位数字应为连续数字,后四位数字为月份和年份。

我正在使用spring 3.2.2和hibernate 4.2.6。我真的很感激任何帮助。

感谢

2 个答案:

答案 0 :(得分:0)

嗯,你的问题不明确。但据我所知,你需要帮助才能得到约会。您可以使用Calendar()或Date(),使用类似Calendar.get(Calendar.MONTH)的内容来获取月份和年份(或者只是解析为您想要的字符串和子字符串)。
关于开头的数字,我将假设(再次,因为你不清楚)它作为输入传递。所以基本上你用“ - ”和前一步的输出连接起来;日期不错。 我希望我帮忙!

答案 1 :(得分:0)

如果要使用在每个月初重置为1的序列号对Web应用程序字符串进行编码,则可以使用单例类实例来保存月份和序列号状态。代码字符串生成器方法检查月份是否已更改,如果是,则将内部当前月份重置为新月份,并将有效内部序列号重置为1.

这是生成器类(请参阅下面的示例,了解如何使用它):

public class MySequenceCodeStringGenerator {
    private static final int generatorMonth;
    private static final int generatorSequenceNumber;

    // Create a singleton instance to hold month and sequence number state.
    private static final MySequenceCodeStringGenerator INSTANCE = new MySequenceCodeStringGenerator();

    private MySequenceCodeStringGenerator() {
        generatorMonth = getCurrentMonth();
        generatorSequenceNumber = 0;
    }

    /////////////////////////
    // PUBLIC functions:
    /////////////////////////

    // Get the singleton instance:
    public static MySequenceCodeStringGenerator getInstance() {
        return INSTANCE;
    }

    // Get the formatted sequence code string:
    public static int getSequenceCodeString {
        int sequenceNumber = getSequenceNumber();
        Calendar now = Calendar.getInstance();
        int year = now.get(Calendar.YEAR);
        int month = now.get(Calendar.MONTH);
        String yearString = String.valueOf(year);
        return String.format( "%02d-%02d%s", sequenceNumber, month+1, yearString.substring(2) );
    }

    // Get the current month:
    private int getCurrentMonth() {
        Calendar now = Calendar.getInstance();
        return now.get(Calendar.MONTH);
    }

    // Get the singleton sequence number.  Update if this is a new month.
    private int getSequenceNumber() {
        currentMonth = getCurrentMonth();
        if ( currentMonth != generatorMonth ) {
            generatorMonth = currentMonth;
            generatorSequenceNumber = 0;
        }
        return ++generatorSequenceNumber;
    }
}

以下是您如何使用生成器类的示例:

String myWebAppString = MySequenceCodeStringGenerator.getInstance().getSequenceCodeString();