我正在创建一个java webapp,我必须创建一个应该每个月开始的连续数字。我的想法是这样的:
01-0414 / 02-0414 / 03-0414 / 04-0414
前两位数字应为连续数字,后四位数字为月份和年份。
我正在使用spring 3.2.2和hibernate 4.2.6。我真的很感激任何帮助。
感谢
答案 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();