0
public class CalendarUtil

{

    private Calendar cal = null;

    public String getRemId()

    {

        cal = Calendar.getInstance();

        return "" + cal.get(Calendar.DATE) + (cal.get(Calendar.MONTH)+1) +        cal.get(Calendar.YEAR);

    }        
}

ボタンのクリックで、日付、月、年、およびフォーム 000 から始まる 3 桁のカウンターの連結を含む ID を自動生成し、それをテキストフィールドに表示するにはどうすればよいですか? 例:- 28122012001、28122012002 など。私が試してきたコードは上記のとおりです

4

1 に答える 1

0

2つの静的フィールドでそれができると思います。

private static String lastUsedDatePrefix;
private static int counter;

新しい ID を無効にする場合は、dateprefix が格納されているものと同じかどうかを確認しlastUsedDatePrefix、そうであればインクリメントして、実際の日付に設定counterします。counter=0lastUsedDatePrefix

テストされていない実装:

public class CalendarUtil{
    private static String lastUsedDatePrefix = "";
    private static int counter = 0;

    public String getRemId(){
        final String datePrefix = new SimpleDateFormat("ddMMyyy").format(new Date());
        if (lastUsedDatePrefix.equals(datePrefix)) {
            CalendarUtil.counter++;
        }
        else{
            CalendarUtil.lastUsedDatePrefix = datePrefix;
            CalendarUtil.counter = 0;
        }
        final String counterSuffix = ((100 <= CalendarUtil.counter) ? ""
                : (10 <= CalendarUtil.counter) ? "0" : "00")
                + CalendarUtil.counter;
        return datePrefix + counterSuffix;
     }   
}
于 2012-12-27T21:39:24.767 に答える