2011-12-28 9 views
7

Chcę uzyskać datę rozpoczęcia & koniec daty tygodnia, na tydzień liczba przekazana do metody. Na przykład, jeśli mijam numer tygodnia jako 51 i rok jako 2011, powinien on powrócić mi datę jako 18 Dec 2011 oraz datę zakończenia jako 24 Dec 2011pobierz datę rozpoczęcia i zakończenia tygodnia od numeru tygodnia i roku w Androidzie

rozpocząć Czy są jakieś metody, które pomogą mi osiągnąć ten cel?

+0

Próbowałem używać MonthDisplayHelper & JodaTime, ale jakoś nie udało się osiągnąć wymaganego. Thanx Sunil & Chase .. spróbuje rozwiązać problem i poznajemy – AndroidGuy

Odpowiedz

19

Możesz skorzystać z następujących metod, aby uzyskać pierwszą datę i datę koniec tygodnia

void getStartEndOFWeek(int enterWeek, int enterYear){ 
//enterWeek is week number 
//enterYear is year 
     Calendar calendar = Calendar.getInstance(); 
     calendar.clear(); 
     calendar.set(Calendar.WEEK_OF_YEAR, enterWeek); 
     calendar.set(Calendar.YEAR, enterYear); 

     SimpleDateFormat formatter = new SimpleDateFormat("ddMMM yyyy"); // PST` 
     Date startDate = calendar.getTime(); 
     String startDateInStr = formatter.format(startDate); 
     System.out.println("...date..."+startDateInStr); 

     calendar.add(Calendar.DATE, 6); 
     Date enddate = calendar.getTime(); 
     String endDaString = formatter.format(enddate); 
     System.out.println("...date..."+endDaString); 
    } 
+0

roku 2015, 2016 nadchodzi tydzień, ale 2013,2014 przychodzi dokładnie ... czy to jest kwestia roku przestępnego .. –

+0

Witam Kamal, jakieś rozwiązanie na wyżej wspomniany numer? – Deva

3

trzeba użyć klasy java.util.Calendar. Możesz ustawić rok za pomocą Calendar.YEAR i tygodnia w roku przy pomocy Calendar.WEEK_OF_YEAR, używając metody public void set(int field, int value).

Dopóki ustawienia regionalne są ustawione prawidłowo, można nawet użyć setFirstDayOfWeek, aby zmienić pierwszy dzień tygodnia. Data reprezentowana przez instancję kalendarza będzie datą początkową. Po prostu dodaj 6 dni na datę zakończenia.

Calendar calendar = new GregorianCalendar(); 
// Clear the calendar since the default is the current time 
calendar.clear(); 
// Directly set year and week of year 
calendar.set(Calendar.YEAR, 2011); 
calendar.set(Calendar.WEEK_OF_YEAR, 51); 
// Start date for the week 
Date startDate = calendar.getTime(); 
// Add 6 days to reach the last day of the current week 
calendar.add(Calendar.DAY_OF_YEAR, 6); 
// End date for the week 
Date endDate = calendar.getTime(); 
Powiązane problemy