2015-07-13 2 views
0

J'essaie de créer N de semaines à partir de la date indiquée et la liste des semaines doit exclure la semaine qui appartient à la semaine. Par exemple si je donne la date d'aujourd'hui, je voudrais générer la semaine en excluant cette semaine à N nombre de semaines. Ci-dessous est l'échantillon qui sert mon but mais je ne suis pas capable de créer le N nombre de semaines aussi ce morceau de code imprime la semaine en cours.Comment générer N nombre de semaines à partir de la date donnée - java

Quelqu'un pourrait-il m'aider?

+0

double possible de [Java ajoutant semaine à ce jour] (http: // stackoverflow.com/questions/30821693/java-adding-week-to-date), et [Obtenir la date de début de la semaine] (http://stackoverflow.com/q/17520937/642706), et bien d'autres. –

Répondre

1

Imprimer N nombre de semaines de la date indiquée [exclut la semaine en cours]:

public static void printNWeeks(Calendar startDate, int weeks) { 

    int firstDayOfWeek = startDate.getFirstDayOfWeek(); 
    int days = (startDate.get(Calendar.DAY_OF_WEEK) + 7 - firstDayOfWeek) % 7; 
    startDate.add(Calendar.DATE, -days); 

    SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd"); 

    for (int i = 1; i <= weeks; i++) { 

     startDate.add(Calendar.DATE, 7); // change to 7 to -7 for back dates 

     Calendar endDate = Calendar.getInstance(Locale.US); 
     endDate.setTime(startDate.getTime()); 
     endDate.add(Calendar.DATE, 6);   

     System.out.println(df.format(startDate.getTime()) + " - " 
       + df.format(endDate.getTime())); 
    } 
} 

Invocations Exemples:

public static void main(String[] args) {   

    //From the given date 
    Calendar startDate = Calendar.getInstance(Locale.US); 
    startDate.set(2015, Calendar.JANUARY, 30); 
    printNWeeks(startDate, 5); 

    //From Current Date  
    startDate = Calendar.getInstance(Locale.US); 
    printNWeeks(startDate, 5); 
}