2015-07-13 49 views
0

我试图从给定的日期创建N周,并且周列表应该排除属于该周的那周。如何从给定的日期生成N个星期 - java

例如,如果我给今天的日期,那么我想生成一周排除本周到N周数。

下面是服务于我的目的的示例,但我无法创建N星期数也是这段代码打印当前星期。

有人能帮助我吗?从给定的日期星期

+0

可能重复:// stackoverflow.com/questions/30821693/java-adding-week-to-date)和[获取开始日期](http://stackoverflow.com/q/17520937/642706)等等。 –

回答

1

打印的N个[不包括当前星期]:

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())); 
    } 
} 

样品调用次数:的[爪哇添加一周日期](HTTP

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); 
}