2016-07-12 7 views
-5

Javaプログラムで順序付き順次IDを生成する方法。 出力は次のようになります。 ここではサンプル出力Mys2016vj01が出力され、01は年まで増分する必要があります。一年後に2016年には、一定のVJ数年後の変更は01javaで順序付きの連続番号を生成する方法

+0

にリセットされなければならないときにはないですので、 に2017年までの増加でなければなりません何か考えているので、私は –

+1

を投稿してくださいhttp://stackoverflow.com/help/how-to-ask – Abhishek

答えて

0
//Initialize it as a static field in the class where you want to generate random number. 
private static final UniqueParamBuilder UNIQUE_PARAM_BUILDER = new UniqueParamBuilder(); 

public String buildNextUniqueNumber() { 
    //Params can be final depending on your context. 
    String param1 = "Mys"; 
    String param2 = "vj"; 

    int year = LocalDateTime.now().getYear();//Java 8. If Java 7, check this 

I want to get Year, Month, Day, etc from Java Date to compare with Gregorian Calendar date in Java. Is this possible?

 String yearParam = year + ""; 
    int uniqueNumber = UNIQUE_PARAM_BUILDER.getNext(year); 
    String uniqueParam = String.format("%01d", uniqueNumber); //Check this to see how start string with leading zeros. 

How can I pad an integers with zeros on the left?

 String result = param1 + yearParam + param2 + uniqueParam; 
    return result; 
} 

public class UniqueParamBuilder { 

    private static final YEAR_TO_START = 2015; 
    private static final int START_CONTER = 0; 

    private int previousYear = YEAR_TO_START; 
    private int counter = START_CONTER ; 

    public int getNext(int year) { 
     if (year > previousYear) { 
      previousYear = year; 
      resetCounter(); 
     } 
     counter++;//Start counter with 1. 
     return counter; 
    } 

    private void resetCounter() { 
     counter = START_CONTER ; 
    } 
} 
関連する問題