2013-02-11 186 views
1

我想從給定日期星期一到星期五獲得星期日期。獲取從給定日期星期一到星期五的星期日期

假設給定的日期是2013年6月2日

我想要的結果:

Monday 4-2-2013 
Tuesday 5-2-2013 
Wednesday 6-2-2013 
Thursday 7-2-2013 
Friday 8-2-2013 

或即使我有沒有周爲6 ...我怎麼能實現關於結果

我從下面的代碼

Calendar c = Calendar.getInstance(); 
c.set(Calendar.DAY_OF_MONTH, 6); 
c.set(Calendar.MONTH, 1); 
c.set(Calendar.YEAR, 2013); 

int weekNo = c.get(Calendar.WEEK_OF_YEAR); 
+0

檢查http://stackoverflow.com/q/8652514/1777090。這可能會有所幫助 – 2013-02-11 09:15:23

回答

1

從2013年6月2日:

 GregorianCalendar c = new GregorianCalendar(2013, 1, 6); 
     c.add(Calendar.DAY_OF_YEAR, Calendar.MONDAY - c.get(Calendar.DAY_OF_WEEK)); 
     DateFormat df = new SimpleDateFormat("d-M-yyyy"); 
     while(c.get(Calendar.DAY_OF_WEEK) != Calendar.SATURDAY) { 
      if (c.get(Calendar.YEAR) == 2013) { 
       System.out.printf("%-10tA%10s%n", c.getTime(), df.format(c.getTime())); 
      } 
      c.add(Calendar.DAY_OF_YEAR, 1); 
     } 
prints 

    Monday  4-2-2013 
    Tuesday  5-2-2013 
    Wednesday 6-2-2013 
    Thursday 7-2-2013 
    Friday  8-2-2013 
from week 6 of 2013: 

    GregorianCalendar c = new GregorianCalendar(2013, 0, 1); 
    c.add(Calendar.WEEK_OF_YEAR, 6 - 1); 
    c.add(Calendar.DAY_OF_YEAR, Calendar.MONDAY - c.get(Calendar.DAY_OF_WEEK)); 
     DateFormat df = new SimpleDateFormat("d-M-yyyy"); 
     while(c.get(Calendar.DAY_OF_WEEK) != Calendar.SATURDAY) { 
      if (c.get(Calendar.YEAR) == 2013) { 
       System.out.printf("%-10tA%10s%n", c.getTime(), df.format(c.getTime())); 
      } 
      c.add(Calendar.DAY_OF_YEAR, 1); 
     } 

打印

Monday  4-2-2013 
Tuesday  5-2-2013 
Wednesday 6-2-2013 
Thursday 7-2-2013 
Friday  8-2-2013 
0
public static void main(String[] args) { 
    getWeekOfDates(2013, 2, 11); 

} 

private static void getWeekOfDates(int year, int month, int day) { 

    Calendar c = Calendar.getInstance(); 
    c.set(Calendar.YEAR, year); 
    c.set(Calendar.MONTH, month); 
    int weekOfMonth = c.get(Calendar.WEEK_OF_MONTH); 
    c.set(Calendar.WEEK_OF_MONTH, weekOfMonth); 

    DateFormat df = new SimpleDateFormat("EEE dd-MM-yyyy"); 
    for (int i = 0; i < 5; i++) { 
     System.out.println(df.format(c.getTime())); 
     c.add(Calendar.DATE, 1); 
    } 

} 
拿到周無

試試這個:我按你的要求編輯。

輸出:

Mon 11-03-2013 
Tue 12-03-2013 
Wed 13-03-2013 
Thu 14-03-2013 
Fri 15-03-2013 
+0

我現在就試試這個...... Thks – sdg 2013-02-11 09:27:57

+0

假設我的給定日期是14/2 ......它甚至在下週還會在下週星期一和星期二加入日期(即..)......我想我必須稍微更改您的代碼... Thrks – sdg 2013-02-11 09:42:24

+0

@sdg我按照您的要求編輯了我的代碼。 – 2013-02-11 09:56:57

2

試試這個...我已經編輯和添加更多的變化Achintya傑哈代碼... Works Fine 感謝Achintya Jha

Calendar c = Calendar.getInstance(); 
c.set(Calendar.DAY_OF_MONTH, 14); 
c.set(Calendar.MONTH, 1); 
c.set(Calendar.YEAR, 2013); 

int weekNo = c.get(Calendar.WEEK_OF_YEAR); 

//Set the Week No 
c.set(Calendar.WEEK_OF_YEAR, weekNo); 

c.clear(); 

//Set the Week Year and the Week No 
c.set(Calendar.WEEK_OF_YEAR, weekNo); 
c.set(Calendar.YEAR, 2013); 


SimpleDateFormat formatter = new SimpleDateFormat("EEE dd/MM/yyyy"); // PST` 
//Get Week Start Date 
Date startDate = c.getTime(); 
//Now it will be sunday so add plus one so now it becomes Monday 
c.add(Calendar.DATE, 1); 
for (int i = 0; i < 5; i++) { 
    //From Monday to Friday Dates will be Printed 
    System.out.println(formatter.format(c.getTime())); 
    c.add(Calendar.DATE, 1); 
} 
相關問題